对于形式为
的椭圆体
使用方向向量并居中于点,如何查找点是否在椭球内?
另外注意几何实际上是a = b(球体),因此一个轴足以定义方向
注意:我在论坛中看到了类似的问题。但是,它是关于原点上的椭球,没有任意方向,这里考虑了任意位置和方向。
答案 0 :(得分:2)
找到仿射变换M,它将这个椭圆转换为面向轴的椭圆(通过-p和旋转平移以对齐方向矢量r和正确的坐标轴)。
然后将此变换应用于点p并检查p'是否位于轴向椭球内,即
x^2/a^2+ y^2/b^2+z^2/c^2 <= 1
答案 1 :(得分:1)
创建一个坐标系E
,其中心位于p
,椭圆的长轴与r
对齐。创建一个矩阵,可以将全局坐标转换为坐标系E
。然后将变换后的坐标放入椭圆方程中。
答案 2 :(得分:1)
中心点 p 和“方向矢量” r 不足以完全指定椭圆体的位置,剩下一个自由度。你的问题是不确定的。
答案 3 :(得分: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单位向量,则上面的测试转换为通常的测试,以包含椭圆中的点。