垂直于椭球的方程

时间:2016-02-03 13:20:57

标签: 3d geometry trigonometry

我有一个扁圆椭圆体(x ^ 2 + y ^ 2)/ a ^ 2 + z ^ 2 / b ^ 2和一个空间P点(xp,xp,xp)。

我需要从P找到垂直于椭球的方程,然后找到椭球与此线之间的交点坐标。

3 个答案:

答案 0 :(得分:0)

任意点的渐变都是(2X/a²,2Y/a²,2Z/b²),必须与(Xp,Yp,Zp)平行。然后是X/a²Xp=Y/a²Yp=Z/b²Zp

取消XY

(Z.a²Xp/b²Zp)²/a² + (Z.a²Yp/b²Zp)²/a² + Z²/b² = 1.

为您提供Z

<强>更新

正如@dmuir指出的那样,这条线不是通过原点,并行必须是(X-Xp,Y-Yp,Z-Zp)

这会给X/a²(X-Xp)=Y/a²(Y-Yp)=Z/b²(Z-Zp)XY仍然可以被删除但是Z的单应函数。我想,Z中的最终等式是四次的。

答案 1 :(得分:0)

这有点复杂。在通常的(大地测量)纬度,长度,高度坐标系中,高度确实是沿椭圆体法线的距离。所以你想要的是从ECEF(即x,y,z)坐标到大地坐标的转换的一部分。这将在here中进行讨论,例如

答案 2 :(得分:0)

对于扁率椭球,我们可以简化 - 解决轴ab的椭圆的二维问题,并用坐标P2=(Sqrt(px^2 + py^2), pz)指向,然后将找到的点C2(x,y)转换为3D为

C = (x*cos(f), x*sin(f), y)
where 
f = arctan2(py, px)

从点到椭圆的垂直在最近点与它相交 让我们通过角度参数t

写椭圆方程
E(t)= (a * cos(t), b * sin(t))

Min.distance / normal condition导致等式

D' = E'(t) * (E(t) - P2) = 0 (dot product)
-a^2 * cos(t) * sin(t) + p2.x * a * sin(t) + b^2 * cos(t) * sin(t) - p2.y * b * cos(t) = 0

解决t,首先检查cos(t)= 0是否为解。如果不是,除以cos(t)

-a^2 * sin(t) + p2.x * a * tg(t) +  b^2 * sin(t) - p2.y * b = 0

然后通过p = half-angle tangent替换sin和tg并解决4度方程。

p = tg(t/2)
-a^2 * 2 * p / (1 + p^2) + p2.x * a * 2 * p /(1 - p^2) + 
 b^2 * 2 * p / (1 + p^2) - p2.y * b = 0

-a^2 * 2 * p * (1 - p^2) + p2.x * a * 2 * p * (1 + p^2) + 
 b^2 * 2 * p * (1 - p^2) - p2.y * b * (1 - p^4)= 0

椭圆外的点有两个根(内部点最多有4个根,不确定3D中会发生什么)。选择合适的一个(最近点)。如上所述将2D案例转换为3D。