Project1

标题: 求问 抛物线 重力加速度 公式 [打印本页]

作者: wbsy8241    时间: 2012-6-20 20:07
标题: 求问 抛物线 重力加速度 公式
本帖最后由 wbsy8241 于 2012-6-20 21:12 编辑

已知: 物重 角度 初速度
可不计空气阻力(如果麻烦的话)
求每帧的x,y坐标
写个适用在RM里的公式吧

角度是0-360

数学实在不行...

应该每帧都会改变 角度 当前速度 的值的dsu_plus_rewardpost_czw
作者: 九夜神尊    时间: 2012-6-21 16:05
本帖最后由 九夜神尊 于 2012-6-21 16:06 编辑

初速度最好是别用角度表示,初速度最好是表示成x,y分速度。
那么假设vx = 10,vy=0,这时物体是向右运动
匀速运动的话,每一帧都是x+=vx  y+=vy
如果是抛物线的话每一帧增加一点点vy值就是了。
还有,你果然数学不好,还物理也不行。
要知道物重是不影响抛物线轨迹的……
作者: wbsy8241    时间: 2012-6-21 17:42
本帖最后由 wbsy8241 于 2012-6-21 17:45 编辑
九夜神尊 发表于 2012-6-21 16:05
初速度最好是别用角度表示,初速度最好是表示成x,y分速度。
那么假设vx = 10,vy=0,这时物体是向右运动
匀 ...


同样初速度对于物轻的 抛物线的轨迹越大(顶点越高,能飞的更远)

我需要从A点往任意角度发射 直接加多少减多少是算不出来的

麻烦的话重力加速度也可以不要 只要引力
作者: 腐琴琴    时间: 2012-6-21 18:47
本帖最后由 腐琴琴 于 2012-6-21 18:55 编辑

为什么我觉得物体轻重和掉落速度是没有关系的(伽利略的小斜塔)?
重力加速度和引力是密不可分的说……

水平抛出距离 = A  * t  = COSL * V * t
距离地面的高度 = H + SINL * V * t - 0.5 * g * t^2  = H + B * t - 0.5 * g * t^2
(其中V是初速度,L是初速度和水平方向的夹角,t是抛出时间,g是加速度一般取10,H是抛出点距离地面的高度)
(水平初始速度是A,竖直初始速度是B)

COSL,SINL,一般取几个特殊值就好了

L = 0     COSL = 1 ,SINL =0      (水平抛出)
L = 15   COSL = 0.97 ,SINL =0.26
L = 30   COSL = 0.87 , SINL =0.5
L = 45   COSL = 0.71 , SINL =0.71   (抛出最远)
L = 60   COSL = 0.5 , SINL =0.87
L = 75   COSL = 0.26 , SINL =0.97
L = 90   COSL = 0 , SINL =1      (竖直抛出)���
作者: 腐琴琴    时间: 2012-6-21 19:38
wbsy8241 发表于 2012-6-21 17:42
同样初速度对于物轻的 抛物线的轨迹越大(顶点越高,能飞的更远)

我需要从A点往任意角度发射 直接加多少减 ...

如果考虑阻力的话其实也不难。
把g(重力加速度)改成a(加速度)
a =( m * g - f )  / m
(其中m是物体质量,g是重力,f是阻力)
作者: wbsy8241    时间: 2012-6-21 19:49
本帖最后由 wbsy8241 于 2012-6-21 19:51 编辑
腐琴琴 发表于 2012-6-21 18:47
为什么我觉得物体轻重和掉落速度是没有关系的(伽利略的小斜塔)?
重力加速度和引力是密不可分的说……
  1. @sprite = Sprite.new
  2. @sprite.bitmap = Bitmap.new("test")
  3. @x = 100
  4. @y = 100
  5. @sprite.x = @x
  6. @sprite.y = @y
  7. h = 100 #抛出点距离地面的高度
  8. l = 45  #初速度和水平方向的夹角
  9. t = 0   #时间
  10. v = 1   #初速度

  11. def sin(l); Math.sin(l * Math::PI / 180); end #SINL
  12. def cos(l); Math.cos(l * Math::PI / 180); end #COSL

  13. loop do
  14.   Graphics.update
  15.   Input.update
  16.   t += 1
  17.   x = cos(l) * v * t
  18.   y = sin(l) * v * t + h + 0.5 * 10 * (t ** 2)
  19. msgbox y
  20.   @sprite.x = @x + x
  21.   @sprite.y = @y + y
  22. end
复制代码
y 没做抛物线运动啊 并且值 越来越大

第2次角度也会变?
作者: 腐琴琴    时间: 2012-6-21 19:59
wbsy8241 发表于 2012-6-21 19:49
y 没做抛物线运动啊 并且值 越来越大

第2次角度也会变?

y的确会越来越大:抛体运动就是水平上匀速运动,竖直上加速运动,所以是曲线
你计算公式好像怪怪的。
y是时间为t的时候的竖直位置,而不是竖直位移。
也就是当前的位置就是x = cos(l) * v * t ,y = sin(l) * v * t + h + 0.5 * 10 * (t ** 2)
你那个@sprite.x = @x + x有一种累加的感觉,看上去不太对啊?
还是我理解错了?
作者: wbsy8241    时间: 2012-6-21 20:04
标题: x
本帖最后由 wbsy8241 于 2012-6-21 20:05 编辑
腐琴琴 发表于 2012-6-21 19:59
y的确会越来越大:抛体运动就是水平上匀速运动,竖直上加速运动,所以是曲线
你计算公式好像怪怪的。
y是 ...


@sprite.x = @x + x
是不太对 但不是累加 2个都是 从原始位置@x 加上移动距离x
原来x 坐标不会变啊... 每次都提高0.71 但是0.71太小了吧= = 3/4像素 都看不出来
作者: 腐琴琴    时间: 2012-6-21 20:11
wbsy8241 发表于 2012-6-21 20:04
@sprite.x = @x + x
是不太对 但不是累加 2个都是 从原始位置@x 加上移动距离x
原来x 坐标不会变啊...  ...

X上至少一直再动,而Y上每次会动的距离是不断增大的。
抛物线的图案就是先比较平然后越来越陡的。
也就是说,开始扔东西,可能觉得只是平着动,几秒后才会感觉明显的下落,后来会越掉越快……
作者: wbsy8241    时间: 2012-6-21 21:06
腐琴琴 发表于 2012-6-21 20:11
X上至少一直再动,而Y上每次会动的距离是不断增大的。
抛物线的图案就是先比较平然后越来越陡的。
也就是 ...

可以用的 感谢
可以把初速度算作物重来决定抛出去的距离和高度
作者: 腐琴琴    时间: 2012-6-21 21:23
wbsy8241 发表于 2012-6-21 21:06
可以用的 感谢
可以把初速度算作物重来决定抛出去的距离和高度

虽然这样可以啦。

不过作为一个物理党,我还是想解释下(语文无能TAT):
初速度和物体质量是独立的值。
水平初速度大,就意味着每秒飞的远,竖直初速度大,就意味着飞的时间长。
物体质量则是通过物体重力G(mg质量乘以重力加速度)减去物体受到的阻力f得到物体的合力F。这个合力F除以物体的质量m得到加速度a,而这个a是竖直方向上速度变化并导致距离变化的重要因素。
由于平时做题目的时候为了学生和老师的快乐,常常会忽略阻力f的存在,也就是在物理题目(大学以下)里面通常气球和铁球掉落速度一样。现实中有阻力,所以掉落速度不一样。而阻力不一定是不变的东西,它大概和风或者空气密度或者大气压有关(我很头痛,对此我还没有学过)。甚至阻力会随物体下落速度增大而增大,导致a甚至是个会变的东西……好吧说的我自己都有点晕了……
作者: 禾西    时间: 2012-6-22 03:34
囧 樓主說的初速度其實是撞擊力……用動量守恒幫他算吧




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1