如何确定点是否在倾斜的圆锥台内

How to determine if point is inside skewed conical frustum

我正在尝试确定一个点是否在 3D 中一个点和一个圆之间形成的椭圆锥内 space。圆锥是椭圆体,因为点不垂直于圆心。见下图:

所以我知道:

  1. 构成圆锥顶点的点的位置:x
  2. 圆心位置:c
  3. 圆的半径:r
  4. 我想判断是否在圆锥内的各个点的位置:y,z

这是同一张图的顶视图:

我不关心圆锥体的底部 - 我希望圆锥体中包含的点有效地拉伸到无穷大。

我找到了计算一个点是否在给定 major/minor 轴的椭球锥内的公式,但是当椭球锥是由一个圆在角度。

感谢您的帮助!

使用圆锥曲线,您可能可以确定距轴的距离以及半长轴和半轴并直接计算。 更难的是一些任意形状。

如果圆锥在 Z 轴方向上有一个点,并且您知道 XYZ 中的一个点...那么您应该能够在那个特定的 Z 水平上绘制一个椭圆。也许用 360 段绘制它。

一旦你有了你的点和你的椭圆,你就可以测试椭圆线段,看看 X 和 Y 是否有交点。

在 0,0,0 处成像一个半径为 1 的圆。在 0,0,0 处有 2 个 Y 交点在 +/- 90 度,2 个 X 交点发生在 0 和 180

如果该点位于 2,0,0,您在 X 中仍有 2 个交点,但它们在左侧,您想要一个在左侧,一个在右侧。

零交集的意思。你在圈外。

重复 360 个片段并确定如何处理点 "on a line" 以及 "on" 有多接近。