我需要实现一个找到射弹轨迹的函数,我有三个点 - 原点,目的地和最大高度
我需要找到包含这些点的正确二次函数。
我很难搞清楚要做什么。我应该从哪里开始?
答案 0 :(得分:-1)
假设您在y轴上有origin
和destination
,即x1
和x2
。如果没有,你可以稍后转移它们。
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
,直到上述等式为真,因为您拥有所有值X
,x1
,x2
和h
。
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;
因此,你得到了所有的系数。