好吧,所以我需要制作一个横跨我的世界的抛物线。 (W)
我是在左上角为(0,0)的世界中创建的

我的3分是从左到右,(x,y)

(0,H)
(W / 2,0)<(宽,高)

从世界的左下角到世界的顶部中心的顶点,再到世界的右下角。

我敢肯定,我使它变得比需要的复杂得多,但是我想尽办法想出办法。

同样,这将起作用的方式是我希望图形在给定的时间内传播抛物线。

因此我将创建一个函数以获取Y,然后将其发送给X,其范围从0到W,具体取决于经过的时间。

所以我会调用该函数,

     GetPathY((WorldWidth*Percentage));
private int getPathY(double X) {
    int y = (int) ScreenHeight-((4 * ScreenHeight* X)/(WorldWidth^2))
    return(y);
}


我会考虑这项工作吗?

因此:y =((((-4 * ScreenHeight)/(WorldWidth ^ 2))(x-(WorldWidth / 2)^ 2))或:y = H-((4Hx)/(W ^ 2));

最佳答案

抛物线的方程是什么?

y(x) = c0 + c1*x + c2*x^2


您有三点:

y(0) = c0 = H


还有一个:

y(W/2) = H + c1*(W/2) + c2*(W/2)^2 = 0


您可以为c1或c2解决此问题。让我们为c2做一下:

c2 = -4H/W^2 - 2c1/W


然后是最后一个方程:

y(W) = H + c1*(W) + c2*(W^2) = H


从双方减去H得到:

c1*W + c2*W^2 = = 0


简化这一步骤以获得c1:

c1 = -c2*W


将您在第二个方程式中求解的系数代入这个方程式中,得到第三个方程式,您就完成了。

这只是代数。

10-07 13:07