椭圆体和抛物面关系

时间:2014-11-09 23:36:56

标签: opengl graphics computational-geometry

我的任务是使用带有 opengl 的c ++创建抛物面和椭圆体。
我实施抛物面作为一组点,距离焦点的距离和距离平面的距离是相同的。运行编译器后,我得到了一个看起来像椭圆体的东西。

错误在于我不小心在距离焦点的距离处放置了乘数(大约为1.1)。 所以我得到了等式|Q-F|*1.1=|Q-P|,其中Q是要确定椭圆/抛物面的一部分,F是焦点的点,P是从中投射的点F到飞机(P->F向量是这种方式的飞机的正常向量)。
在将等式修正为|Q-F|=|Q-P|之后,我得到了抛物面,如预期的那样。当我将等式改为(|Q-F|*m=|Q-P| ,m>1)时,我得到了一个椭圆体。 这个等式真的是椭圆体吗?

1 个答案:

答案 0 :(得分:0)

考虑2D情况就足够了(因为抛物面和椭圆体可以通过旋转形成) 设点中的点的距离为L到OY轴,距离为R到F点,距离比为系数m:

L * m =  R

我们m^2 = k

k * L^2 = R^2
k * X^2 = Y^2 + (X - F)^2
X^2 * (k-1) + 2 * X * F - F^2 = Y^2

当k = 1时

Y^2 = 2* F * (X - F/2)

这是抛物线的规范等式,偏移了F / 2

k > 1, k-1 = p > 0时,

X^2 + 2 * X * F / p - Y^2 / p = F^2 / p

这是双曲线

k < 1, 1 - k = p > 0时,

-p * X^2 - 2 * X * F + Y^2 + F^2 = 0
(X - F/P)^2 + Y^2/p = F^2/p^2*(1-p)

如果我的计算中没有错误,那么这是椭圆形,以Xc = F/p为中心,带有半轴F*Sqrt(1-p)/pF * Sqrt((1-p)/p)

enter image description here