java - 使用 3 点的抛物线方程

标签 java math graphics

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

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

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

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

我确信我让这件事变得比它需要的复杂得多,但我绞尽脑汁试图弄清楚它。

另外,我想要一个图形在给定的时间内沿抛物线行进。

所以我会创建一个函数来获取 Y,然后将 X 发送给它,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

将您在第二个方程中解出的系数代入这个方程以获得第三个方程,然后就完成了。

这只是代数。

关于java - 使用 3 点的抛物线方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11200346/

相关文章:

java - 一个线程上有多个启动

java - 线程 "main"java.ClassCastException : MomentOfInertia. 中出现异常 三角形无法转换为 Ix

C++错误,添加偶数

ios - 如何将 UIImage 切成碎片(如披萨)并将每个碎片保存在数组中?

java - IntelliJ 将包和导入放在文件头下方

java - IBM 爵士团队服务器 : Getting Changes from Changeset using OSLC

javascript - 重新创建 CSS3 过渡 Cubic-Bezier 曲线

arrays - 如何找到加起来达到一定长度的所有单词组合?

java - Android - 使用 LinearLayout 制作 ScrollView

python - Plotly:如何删除使用 add_annotation() 创建的箭头尾部后面的间隙?