这可能是非常明显的,但数学并不是我学校的强项。我一直在撞墙直到我终于想到我会问。
我正在尝试为沿着2D抛物线路径移动的精灵设置动画,从A点到B点。两个点都在相同的y坐标处。还给出了从开始/结束y坐标开始的抛物线的期望高度(或者,如果您愿意,还给出期望的速度)。目前在我的代码中我有一个高频率的定时器。我想根据已经过去的时间来计算球的新位置。所以参数抛物线方程应该很好用。
我发现this answer from GameDev足够了,直到我的要求增长(虽然我不确定它真的是抛物线路径......我不能按照提供的最终方程的推导)。现在我想在抛物线路径的不同点处挤压/拉伸精灵。但为了使效果正常工作,我需要旋转精灵,使其主轴与路径相切。所以我需要能够在任何给定的位置/时间导出切线的角度。
我可以为每个要求找到各种方程(参数抛物线,一点切线等),但我无法弄清楚如何将它们统一起来。拥有更多数学技能的人能否帮助一个编码人员并提供一组有用的方程式?非常感谢提前。
答案 0 :(得分:3)
你缺少的是:
Slope = TAN(angle) // in radians
坡度是多少?根据您移动的移动量(dy/dx
在其他一些答案上)移动的数量是多少。对您而言,它实际上是(dy/dt)/(dx/dt)
,因为x
和y
都是时间的函数。
因此,对于轨迹x(t)=Vx*t
和y(t)=Vy*t-1/2*g*t^2
,斜率为Slope=(Vy-g*t)/Vx
,其中Vx
是初始水平速度,Vy
是初始垂直速度。 g
是重力(垂直加速度下降)。所以你的学位轮换应该是
angle = ATAN( (Vy-g*t)/Vx ) * 180/PI
基本上斜率等于垂直速度与水平速度的比值。
答案 1 :(得分:1)
设X是从A到B的距离,Y是抛物线的理想高度,V是水平速度。
x = Vt
y = Y - (4Y/X^2) (X/2-Vt)^2
tangent dy/dx = (8Y/X^2) (X/2-Vt)