traingle


一条射线:

P(t)=orig+t⋅dir,t>0

一个三角形(用重心坐标表示):

P(u,v)=v0+ue1+ve2,u≥0, v≥0, u+v≤1

其中:

  • e1=v1−v0
  • e2=v2−v0
triangleP(u,v)=v0+u(v1−v0)+v(v2−v0)

重新整理各项系数:

P(u,v)=(1−u−v)v0+uv1+vv2

w=1−u−v,则上式可以写为标准的重心坐标形式:

P=wv0+uv1+vv2其中w+u+v=1

(平面向量)

相交

orig+tdir=v0+ue1+ve2−tdir+ue1+ve2=orig−v0

记 S=orig−v0,

[−dire1e2][tuv]=S

一个 3×3 线性方程组 Ax=S,其中列向量是 −dir, e1, e2,未知量是 (t,u,v)。


2. ​

设矩阵 A=[−dir, e1, e2],则:

t=det[S, e1, e2]detA,u=det[−dir, S, e2]detA,v=det[−dir, e1, S]detAdet[a,b,c]=a⋅(b×c)
几何

面积或体积,

后面张成平行六面体体积=高*底S。