点的二次方程

时间:2016-07-27 02:56:04

标签: algorithm math physics-engine

我需要实现一个找到射弹轨迹的函数,我有三个点 - 原点目的地最大高度

我需要找到包含这些点的正确二次函数。

我很难搞清楚要做什么。我应该从哪里开始?

1 个答案:

答案 0 :(得分:-1)

假设您在y轴上有origindestination,即x1x2。如果没有,你可以稍后转移它们。

a*x*x + b*x + c = 0//equation
x1*x2=(c/a);
c = (x1*x2)*a;
x1+x2=(-b/a);
b = (x1+x2)/(-a);
a*((x1+x2)/2)^2 + b*((x1+x2)/2) + c = h//max height
let X=(x1+x2)/2;
a*X*X + ((2*X)/(-a))*X + (x1*x2)*a - h = 0;

现在,您可以遍历a=0,直到上述等式为真,因为您拥有所有值Xx1x2h

double eqn = (-h),a=0;//a=0.Assuming you have declared x1,x2 and X already
while(eqn!=0)
{
    a++;
    eqn = a*X*X + ((2*X)/(-a))*X + (x1*x2)*a - h;
}
b = (x1+x2)/(-a);
c = (x1*x2)*a;

因此,你得到了所有的系数。