【发布时间】:2015-08-09 18:23:19
【问题描述】:
我使用 scipy.spatial.ConvexHull 创建了一个凸包。我需要计算凸包和射线之间的交点,从 0 开始,并在某个其他定义点的方向上。已知凸包包含 0,因此应保证相交。问题的维度可以在 2 到 5 之间变化。我尝试了一些谷歌搜索,但没有找到答案。我希望这是计算几何中已知解决方案的常见问题。谢谢。
【问题讨论】:
-
您需要遍历船体的每个 (N-1) 维“面”,计算射线与包含它的 (N-1) 维“平面”的交点面,然后检查该交点是否在“面”的范围内。不确定是否有任何捷径......不过,鉴于它是一个凸包,应该只有一个交叉点(除非它通过多个面之间的边或顶点),因此您可以在完成后立即停止迭代找到了。
-
@twalberg 在这一点上,我更关心正确性而不是效率,所以蛮力检查不会打扰我(但,也许永远不会)。如何找到一条线与超平面的交点? This 似乎很难,高维度对我来说并不直观。
-
检查最近的路口就足够了。如果您确定光线起点在内部而不是最近的交点在面上。
标签: python computational-geometry intersection convex-hull