好吧,所以我需要制作一个横跨我的世界的抛物线。 (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
将您在第二个方程式中求解的系数代入这个方程式中,得到第三个方程式,您就完成了。
这只是代数。