给出源和目标坐标的参数抛物线方程

时间:2011-06-26 19:35:57

标签: java math

对于某个程序,星标会以随机,预先计算的位置显示在屏幕的底部或顶部。星星前往他们预定的目的地,这是一个字母的顶部或底部(根据字母是在字母的上方还是下方)。目前,恒星的运动主要是线性的,与一些自制方程有一点曲线。我想要一个坚固的抛物线方程,其中恒星以与目标字母的顶部/底部大致垂直(+ - 20度)的角度到达目标位置。我打电话给计算3,所以我无法弄清楚如何为这个问题实现抛物线。我也开放了一种完全不同的动画这些对象的方式。帮助赞赏。谢谢!

enter image description here enter image description here enter image description here
无关信息:恒星的源位置永远不会直接位于它们要碰撞的字母的上方或下方,并且从不超过屏幕宽度的一半,对于底部起源的恒星或屏幕宽度的1/3远离顶尖的明星。

1 个答案:

答案 0 :(得分:1)

所以,我们想要一个已知顶点的抛物线,以及其他一些任意点。

首先,考虑一下顶点。在抛物线的顶点,y位的一阶导数为零; d/dx(ax^2 + bx + c) = 2ax + b,所以在x我们2ax + b = 0 2ax = -b => x = -b/2a时解析X_a = -b/2a。所以a

现在,我们可以使用它来解决ba = -b/2X_a。所以,Y_a = (-b/2X_a)X_a^2 + bX_a + c

我们也知道顶点的y坐标:Y_a = -bX_a/2 + bX_a + c; Y_a = bX_a/2 + c; c;求解c = Y_a - bX_a/2y = (-b/2X_2)x^2 + bx + Y_a - bX_a/2

现在将其插入另一个已知点的等式中:y = -bX_a/2 + bx + Y_a - bX_a/2; y = -bX_a + bx + Y_a; bx - bX_a = y - Y_a;解决b:b(x - X_a) = y - Y_a; b = (y - Y_a) / (x - X_a); a

现在您有了二次函数的三个参数的公式(cb依赖于{{1}}),因此您可以轻松获得参数化表单。