三角形内外判断
问题
平面上,已知三角形三个顶点ABC及另一顶点D的坐标,如何判断点D是否在三角形之内?
这个问题在很多场景会遇到,比如判断空间直接与三角形是否相交,
可以先计算直线与三角形平面交点,再判断交点是否在三角形之内.
计算直线与三角形平面交点的方法可参考文章
《阴影投射位置计算》
算法一
最简单的办法就是比较三角形面积.而面积是易容通过叉乘来计算的.
要留意的是浮点数比较的精度问题.
如图:
如果点D在三角形内,则:
S A B C = S A B D + S A D C + S D B C S_{ABC} = S_{ABD} + S_{ADC} + S_{DBC} SABC=SABD+SADC+SDBC
如果点D在三角形之外,则:
S A B C < S A B D + S A D C + S D B C S_{ABC} < S_{ABD} + S_{ADC} + S_{DBC} SABC<S