问一下空间中射线与三角形求交点的有关问题
问一下空间中射线与三角形求交点的问题
我看的算法都是先求射线与三角形所在平面的交点,然后再判断交点是否在三角形中.但是这样的话,如果射线与三角形共面,那就判断不出来了.
请问这种情况怎么处理?谢谢
------解决方案--------------------
共面的情况就改成判断点与三边直线的交点。
------解决方案--------------------
一种方法是计算射线与一条边的交点,然后判断该交点是否位于该边的两个端点之间,
如果否那么就计算与下一条边的交点,然后判断该交点是否位于该边的两个端点之间,
如果否那么就不与三角形相交。
第二种方法是对于边的旋向一致的三角形,通过求线段的交集来判断射线是否穿过三角形。
这里推荐第一种方法,对于直线与三角形共面来说,而且还可以快速地(只有+, -)判断交点是否位于两个端点之间。而第二种方法需要更多的计算。
对于临界情况的判断,你可以自定义规则。
我看的算法都是先求射线与三角形所在平面的交点,然后再判断交点是否在三角形中.但是这样的话,如果射线与三角形共面,那就判断不出来了.
请问这种情况怎么处理?谢谢
------解决方案--------------------
共面的情况就改成判断点与三边直线的交点。
------解决方案--------------------
一种方法是计算射线与一条边的交点,然后判断该交点是否位于该边的两个端点之间,
如果否那么就计算与下一条边的交点,然后判断该交点是否位于该边的两个端点之间,
如果否那么就不与三角形相交。
第二种方法是对于边的旋向一致的三角形,通过求线段的交集来判断射线是否穿过三角形。
这里推荐第一种方法,对于直线与三角形共面来说,而且还可以快速地(只有+, -)判断交点是否位于两个端点之间。而第二种方法需要更多的计算。
对于临界情况的判断,你可以自定义规则。