我正在尝试确定一个点是否在 3D 空间中的点和圆之间形成的椭圆锥内。圆锥是椭圆体,因为该点不垂直于圆心。见下图:
所以我知道:
- 形成圆锥顶点的点的位置:x
- 圆心的位置:c
- 圆的半径:r
- 我想确定它们是否在圆锥内的各个点的位置:y,z
这是同一图表的俯视图:
我不关心圆锥体的底部 - 我希望圆锥体中包含的点有效地拉伸到无穷大。
我已经找到了计算一个点是否在给定长轴/短轴的椭球锥内的公式,但是当椭球锥是由一个角度的圆形成时,很难弄清楚如何做到这一点。
谢谢你的帮助!
我正在尝试确定一个点是否在 3D 空间中的点和圆之间形成的椭圆锥内。圆锥是椭圆体,因为该点不垂直于圆心。见下图:
所以我知道:
这是同一图表的俯视图:
我不关心圆锥体的底部 - 我希望圆锥体中包含的点有效地拉伸到无穷大。
我已经找到了计算一个点是否在给定长轴/短轴的椭球锥内的公式,但是当椭球锥是由一个角度的圆形成时,很难弄清楚如何做到这一点。
谢谢你的帮助!
使用圆锥曲线,您可能可以确定与轴的距离以及半主要和次要的距离并直接计算它。更难的是一些任意的形状。
如果圆锥在 Z 轴方向上有一个点,并且您知道 XYZ 中的一个点……那么您应该能够在该特定 Z 水平上绘制一个椭圆。也许用 360 段来绘制它。
一旦你有了你的点和你的椭圆,你就可以测试椭圆段,看看 X 和 Y 是否有交点。
在 0,0,0 处成像一个半径为 1 的圆。在 0,0,0 处的一个点在 +/- 90 度处有 2Y 个交叉点,在 0 和 180 处有 2 个 X 交叉点
如果该点位于 2,0,0 处,则 X 中仍有 2 个交点,但它们位于左侧,您希望左侧一个,右侧一个。
零交叉意味着。你在篮筐外。
在 360 段中重复并确定如何处理“在线”上的点以及“在线”的接近程度。