点的二次方程
Quadratic Equation From Points
我需要实现一个找到射弹轨迹的函数,我有三个点 - origin、destination 和点最大高度。
我需要找到包含这些点的正确二次函数。
我很难弄清楚该怎么做。我应该从哪里开始?
假设您在 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;
这样你就得到了所有的系数。
我需要实现一个找到射弹轨迹的函数,我有三个点 - origin、destination 和点最大高度。
我需要找到包含这些点的正确二次函数。
我很难弄清楚该怎么做。我应该从哪里开始?
假设您在 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;
这样你就得到了所有的系数。