如何检查一个点是否在椭球体内且有方向?

问题描述 投票:0回答:4

对于以下形式的椭球

formula

以方向向量 formula 为中心,以点 formula 为中心,如何判断点 formula 是否在椭球体内?

附加说明,几何形状实际上是 a=b(椭球体),因此一个轴足以定义方向

注意:我在论坛中看到了类似的问题。但是,它是关于原点处的椭球体并且没有任何任意方向,并且这里同时考虑任意位置和方向。

algorithm 3d geometry distance computational-geometry
4个回答
2
投票

找到仿射变换 M,将这个椭圆平移到轴定向的椭圆上(通过 -p 平移并旋转以对齐方向向量 r 和适当的坐标轴)。
然后将此变换应用于点 p 并检查 p' 是否位于轴导向椭球体内,即

x^2/a^2+ y^2/b^2+z^2/c^2 <= 1


1
投票

创建一个坐标系

E
,中心位于
p
,椭圆的长轴与
r
对齐。创建一个可以将全局坐标转换到坐标系
E
的矩阵。然后将变换后的坐标代入椭圆方程。


1
投票

中心点p和“方向向量”r不足以完全指定椭球体的位置,还剩下一个自由度。你的问题是不确定的。


0
投票

如果向量 r 是从原点到极点的单位向量,则测试点 q 是否在椭圆内(或椭圆上)为:

v = q-p;  // 3d vector difference
dot = v.r; // 3d dot product
f = dot*dot;  
g = v.v - f; // 3d dot product and scalar subtraction
return f/(b*b) + g/(a*a) <= 1

请注意,如果椭圆对齐以使 r 为 z 单位向量,则上面的测试将转换为在椭圆中包含点的通常测试。

© www.soinside.com 2019 - 2024. All rights reserved.