我正面临使用MATLAB的光线追踪问题,现在我有点沮丧。我在3D空间中有一些定义表面的点。我使用Delaunay算法用matlab函数" trisurf"来表示小三维三角形。然后,我有我的" ray",这基本上是一个三维矢量。我的目标是找到此向量之间的交点(X,Y,Z)(即曲线,而不是直线)。在matlab中是否存在能够执行此操作的功能或任何人有任何建议?在此先感谢您的帮助,
莱昂纳多
答案 0 :(得分:0)
我使用带有matlab函数“trisurf”的Delaunay算法用小三维三角形表示。
这听起来像是一个三角形网格。
我有“射线”,基本上是一个三维矢量。
光线是原点和方向,所以应该是两个矢量,而不是一个。
我的目标是找到此向量之间的交点(X,Y,Z)(即曲线,而不是直线)。
如果您有一组三角形和一条光线,那么您可以遍历所有三角形并对每个三角形执行光线/三角形相交测试。
交叉测试有许多算法。一个受欢迎的是Moeller-Trumbore。