一.神奇的公式
有平面三角形点v0,v1,v2。p为该平面上的点则有
其中u为三角形一边的比例,v为三角形另一边的比例,
v0 + (v1 - v0) * u + (v2 - v0) * v = p
根据方程解u v。之前有一个疑问,为什么一条公式可以解两个未知数?
其实这是两条方程,平面向量有x y两个方向,这就可以解。
方程的解有三类,有多解 无解 唯一解。
当三角形为一条线,p在线上,则有无数解,p在线外则无解 否则有唯一解。
如果p在三角形内则有解出来的u>=0 v>=0 (u+v)<=1
二.公式延伸
想到上面的计算,我想空间上也一样可以运用此公式
如果在三维空间上的三角形点v0,v1,v2,与射线R(R为单位向量),O为射线起点有
t为射线到三角形交点的距离
v0 + (v1 - v0) * u + (v2 - v0) * v = R * t + O
(v0 - O) + (v1 - v0) * u + (v2 - v0) * v = R * t
简化名称 令 P = v0 - O
有 P + (v1 - v0) * u + (v2 - v0) * v = R * t
解方程,就可以得到 u v t 但在空间上 方程也未必一定有解
1判断是否存在v0 v1 v2是一条线的情况
是的话,情况变得复杂,这里不去细化
2.判断三角形是不是跟射线的方向平行
如果平行则无