Point triangle distance
介绍
该文章中的c++代码参考了ipc-toolkit的实现。
点到三角形的距离可以用如下定义:
distance(→xp,→xt1,→xt2,→xt3)=minβ1,β2‖→xp−(→xt1+β1(→xt2−→xt1)+β2(→xt3−→xt1))‖s.t.β1≥0,β2≥0,β1+β2≤1
这是一个分断连续的函数,实际计算时可以根据点和三角形的位置关系分以下几种情况讨论,首先要将点投影到三角形所在的平面上:
- 投影后,点在三角形内部,此时距离为点到三角形所在平面的距离。
- 投影后,点在三角形的某个边朝外的半平面且投影在边上的点在边上,此时距离为点到边的距离。
- 其他情况,此时距离为点到三角形的三个顶点的最小距离。