zel*_*ell -1 python algorithm geometry image-processing
我正在尝试用Python解决以下问题。该问题来自我使用有限元法时的图像处理问题。
在我的问题中,我有一组三角形和一条射线。每个三角形由三个 3-D 点组成,射线采用 3-D 点和 3-D 矢量的形式。如何确定光线穿过的第一个三角形?现在我什至没有这方面的算法。任何意见将不胜感激。
我要做的第一件事是平移整个数据集,减去 3D 射线原点。然后旋转数据集,使光线的 3D 矢量与 X 轴对齐。请参阅如何找到将向量旋转到 x 轴的正交变换?。
现在,问题已转换为过滤与 X 轴交叉且 X 坐标非负的三角形,并在其中找到交叉点具有最小 X 坐标的三角形。所以
对于每个三角形,检查其平面与 X 轴相交的位置。请参见确定平面与给定平面点的轴的交点
然后丢弃交叉点(在 X 轴上)不在三角形边界内的三角形(检查该点位于其“内”侧的三个边中的每一个)。请参见检查点是否在 3D 三角形内
丢弃交叉点具有负 X 坐标的三角形。
在剩余的三角形(真正在正侧与 X 轴交叉)中找到 X 坐标具有最小交叉点的三角形。