简述
“平面方程”是指空间中所有处于同一平面的点所对应的方程,其一般式形如Ax+By+Cz+D=0。(解释和前几种方法均来自百度百科)百度百科
表示方法
截距式
- 设平面方程为Ax+By+Cz+D=0,若D不等于0,取a=-D/A,b=-D/B,c=-D/C,则得平面的截距式方程:x/a+y/b+z/c=1
- 它与三坐标轴的交点分别为P(a,0,0),Q(0,b,0),R(0,0,c),其中,a,b,c依次称为该平面在x,y,z轴上的截距。
点法式
- n为平面的法向量,n=(A,B,C),M,M’为平面上任意两点,则有n·MM’=0, MM’=(x-x0,y-y0,z-z0),
从而得平面的点法式方程:A(x-x0)+B(y-y0)+C(z-z0)=0 - 三点求平面可以取向量积为法线
任一三元一次方程的图形总是一个平面,其中x,y,z的系数就是该平面的一个法向量的坐标。
两平面互相垂直相当于A1A2+B1B2+C1C2=0
两平面平行或重合相当于A1/A2=B1/B2=C1/C2
点到直线的距离公式:
一般式
- Ax+By+Cz+d=0
法线式
- xcosα+ycosβ+zcosγ=p ,其中cosα、cosβ、cosγ是平面法矢量的方向余弦,p为原点到平面的距离。
其他方式表示平面
法线+空间内两点
- 如下图 其中A,B分别是空间上两个点,N为该平面的法向量,D为平面到坐标原点的距离。
- 平面方程:
- 平面示意图:
- 关于该方程的推导:
N · P = N · (P - (0,0,0)) =Plane.distence(C# 中原点到平面的距离求法)
补充:表示三角面片的方法(区域)
- 本方法出自论文《Fast Minimum Storage Ray Triangle Intersection》
- 三角形参数方程,记三角形的三个顶点为v0,v1,v2,u,v,分别是v1,v2的权重,并满足u,v>0,且u+v≤1.
- 方程表示为:(T(u,v)表示三角形内一点)
T(u,v) = (1 - u - v) · v0 + u · v1 + v · v2
上面的方程是三角形及其内部所有点的方程,因为三角形内任意一点都可以理解为从顶点V0开始,沿着边V0V1移动一段距离,然后再沿着边V0V2移动一段距离,然后求他们的和向量。至于移动多大距离,就是由参数u和v控制的。
论文及 射线与三角面片是否接触的检测代码(c#)见添加链接描述