对于某个程序,星标会以随机,预先计算的位置显示在屏幕的底部或顶部。星星前往他们预定的目的地,这是一个字母的顶部或底部(根据字母是在字母的上方还是下方)。目前,恒星的运动主要是线性的,与一些自制方程有一点曲线。我想要一个坚固的抛物线方程,其中恒星以与目标字母的顶部/底部大致垂直(+ - 20度)的角度到达目标位置。我打电话给计算3,所以我无法弄清楚如何为这个问题实现抛物线。我也开放了一种完全不同的动画这些对象的方式。帮助赞赏。谢谢!
无关信息:恒星的源位置永远不会直接位于它们要碰撞的字母的上方或下方,并且从不超过屏幕宽度的一半,对于底部起源的恒星或屏幕宽度的1/3远离顶尖的明星。
答案 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
。
现在,我们可以使用它来解决b
或a = -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/2
:y = (-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
。
现在您有了二次函数的三个参数的公式(c
和b
依赖于{{1}}),因此您可以轻松获得参数化表单。