在轴向对齐的,以原点为中心的椭圆 E 外部给出 p 点,找到 E的(最多)四个唯一法线通过 p 。
这不是Mathematica的问题。直接计算太慢;我愿意为速度牺牲精度和准确度。
我搜索过网络,但我发现所有涉及过于复杂的计算,如果直接实施,似乎缺乏我需要的性能。有没有更“程序化”的方法来做到这一点,比如使用矩阵或将椭圆缩放成圆形?
答案 0 :(得分:5)
假设椭圆E
处于“标准位置”,中心位于原点,轴平行于坐标轴:
(x/a)^2 + (y/b)^2 = 1 where a > b > 0
边界情况a=b
是圆形,其中法线只是通过中心(原点)的线条,因此很容易找到。所以我们省略了对这些案例的讨论。
任何点(x,y)
处椭圆的切线斜率可以通过隐式区分找到:
dy/dx = -(b^2 x)/(a^2 y)
对于在椭圆上通过(x,y)和指定点p = (u,v)
而不是的直线,当椭圆为负值时,这与椭圆E
是垂直的dy/dx
的倒数:
(y-v)/(x-u) * (-b^2 x)/(a^2 y) = -1 (N)
简化为:
(x - (1+g)u) * (y + gv) = -g(1+g)uv where g = b^2/(a^2 - b^2)
在这种形式中,我们认识到它是正确的矩形双曲线的等式。根据椭圆和双曲线之间有多少交点(2,3,4),我们有E
通过p
的许多法线。
通过反射对称,假设p
位于E
的外部,我们可能会p
位于第一个象限中:
(u/a)^2 + (v/b)^2 > 1 (exterior to E)
u,v > 0 (1'st quadrant)
我们可能有u=0
或v=0
的边界情况,即点p
位于E
的轴上,但这些情况可能会缩小为求解二次方,因为两个法线是通过该轴端点的(重合)线。我们暂时推迟对这些特殊情况的进一步讨论。
以下是a=u=5,b=v=3
的插图,其中只有双曲线的一个分支与E
相交,并且只有两个法线:
如果将两个未知数(x,y)
中的两个方程组的系统简化为一个未知数中的一个方程,则最简单的编码查找方法是a bisection method,但知道某些根的可能位置/十字路口将加快我们的搜索速度。第一象限中的交点是E
到p
的最近点,同样第三象限中的交点是距离E
p
的最远点。如果点p
更接近于短轴的上端点,则双曲线的分支将一起移动到足以在第四象限中创建多达两个交点。
一种方法是通过与x轴的交点来参数化E
。从p
法线到椭圆的线必须与长轴相交,长轴是有限区间[-a,+a]
。我们可以测试通过q=(x,y)
和p=(u,v)
的行的交点(z,0)
的上交点和下交点,z
从-a
扫描到+a
},寻找椭圆和双曲线相交的地方。
更详细:
1. Find the upper and lower points `q` of intersection of E with the
line through `p` and `(z,0)` (amounts to solving a quadratic)
3. Check the sign of a^2 y(x-u) - b^2 x(y-v) at `q=(x,y)`, because it
is zero if and only `q` is a point of normal intersection
一旦检测到符号变化的子区间(上部或下部),就可以对其进行细化以获得所需的精度。如果只需要适度的准确性,则可能不需要使用更快的根查找方法,但即使需要它们,使用隔离根(或第四象限中的根对)的短子区间也是有用的。
**比较各种方法的收敛更多**
答案 1 :(得分:0)
我必须解决与此类似的问题,用于GPS初始化。问题是:地球内部点的纬度是多少,特别是在中心附近,它是单值的吗?有很多方法可以将ECEF笛卡尔坐标转换为大地纬度,经度和海拔(查找“ECEF到大地测量”)。我们使用一个快速的,每次迭代只有一个除法和sqrt,而不是像大多数方法那样的几个trig评估,但由于我无法在野外找到它,我不能在这里给你。我将从Lin和Wang的方法开始,因为它只在迭代中使用除法。下面是地球中心100 km范围内椭球表面法线的图(北边是图中的向上,实际上是ECEF Z,而不是Y):
图中心的星形“焦散”描绘了WGS-84椭圆体的曲率中心,因为纬度从极点到赤道变化。请注意,由于极化变平,极点处的曲率中心位于赤道的相对侧,赤道处的曲率中心比旋转轴更靠近曲面。
无论线路交叉,笛卡尔位置的纬度都不止一个。绿色圆圈显示我们的算法在哪里挣扎。如果你认为我切断了它们到达轴的这些法向量,那么对于这个SO线程中考虑的问题,你会有更多的法线给定位置。在腐蚀性物质内部有4个纬度/法线,在外部有2个纬度/法线。
答案 2 :(得分:0)
问题可以表示为三次方程的解 给出1个,2个或3个真正的根。用于推导和封闭形式 解决方案见Geodesics on an ellipsoid of revolution的附录B. 1和3解决方案之间的边界是一个astroid。