求点P(X1,Y1,Z1)到平面AX+By+CZ+D=0的距离公式

 我来答
匿名用户
2013-10-31
展开全部
先介绍一下三维中的两点之间距离之式,和二维的几乎一样:d = sqrt((x0-x1)^2 + (y0-y1)^2 + (z0-z1)^2)

再介绍叉乘,中心内容!叉乘在定义上有:两个向量进行叉乘得到的是一个向量,方向垂直于这两个向量构成的平面,大小等于这两个向量组成的平行四边形的面积。

在直角座标系[O;i,j,k]中,i、j、k分别为X轴、Y轴、Z轴上向量的单位向量。设P0(0,0,0),P1(x1,y1,z1),P2(x2,y2,z2)。因为是从原点出发,所以向量P0P1可简记为P1,向量P0P2可简记为P2。依定义有:

|i j k |
P1×P2 = |x1 y1 z1|
|x2 y2 z2|

展开,得到:

上式 = iy1z2 + jz1x2 + kx1y2 - ky1x2 - jx1z2 - iz1y2

= (y1z2 - y2z1)i + (x2z1 - x1z2)j + (x1y2 - x2y1)k

按规定,有:单位向量的模为1。可得叉积的模为:

|P1×P2| = y1z2 - y2z1 + x2z1 - x1z2 + x1y2 - x2y1

= (y1z2 + x2z1 + x1y2) - (y2z1 + x1z2 + x2y1)

开始正式内容。我们设三角形的三个顶点为A(x0,y0,z0),B(x1,y1,z1),C(x2,y2,z2)。我们将三角形的两条边AB和AC看成是向量。然后,我们以A为原点,进行坐标平移,得到向量B(x1-x0,y1-y0,z1-z0),向量C(x2-x0,y2-y0,z2-z0)。

①在三维的情况下,直接代入公式,可得向量B和向量C叉乘结果的模为:

|B×C| = ((y1-y0)*(z2-z0) + (z1-z0)*(x2-x0) + (x1-x0)*(y2-y0)) -
((y2-y0)*(z1-z0) + (z2-z0)*(x1-x0) + (x2-x0)*(y1-y0))

| 1 1 1 |
= |x1-x0 y1-y0 z1-z0|
|x2-x0 y2-y0 z2-z0|

它的一半即为所要求的三角形面积S。

还有一种比较简单的写法。将向量AB和AC平移至原点后,设向量B为(x1,y1,z1),向量C为(x2,y2,z2),则他们的叉乘所得向量P为(x,y,z),其中:

|y1 z1| |z1 x1| |x1 y1|
x = | | y = | | z = | |
|y2 z2| |z2 x2| |x2 y2|

然后用三维中的两点之间距离公式,求出(x,y,z)与(0,0,0)的距离,即为向量P的模,它的一半就是所要求的面积了。

以上公式都很好记:x分量由y,z分量组成,y分量由z,x分量组成,z分量由x,y分量组成,恰好是循环的。坐标平移一下就好了。

②在二维的情况下,我们可以取z = 0这个平面,即令z1 = z2 = 0,且

|P1×P2| = x1y2 - x2y1

|x1 y1|
= | |
|x2 y2|

所以:

|B×C| = (x1-x0)*(y2-y0)-(x2-x0)*(y1-y0)

|x1-x0 y1-y0|
= | |
|x2-x0 y2-y0|

它的一半即为所要求的三角形的面积S。

注意,用行列式求出来的面积是带符号的。如果A,B,C是按顺时针方向给出,则S为负;按逆时针方向给出,则S为正。

以二维的情况为例,三维亦同:

A(0,0) B(0,1) C(1,0) (A,B,C按顺时针方向给出)

S = ((x1-x0)*(y2-y0)-(x2-x0)*(y1-y0))/2;
= ((0 - 0)*(0 - 0)-(1 - 0)*(1 - 0))/2
= -0.5

A(1,0) B(0,1) C(0,0) (A,B,C按逆时针方向给出)

S = ((x1-x0)*(y2-y0)-(x2-x0)*(y1-y0))/2;
= ((0 - 1)*(0 - 0)-(0 - 1)*(1 - 0))/2
= 0.5

如果你不需要符号的话,再求一下绝对值就好了。这样也不用去管给出的点的顺序了。

以上是利用叉乘。其实还有一招,那就是海伦公式:

利用两点之间距离公式,求出三角形的三边长a,b,c后,令p = (a+b+c)/2。再套入以下公式就可以求出三角形的面积S :

S = sqrt(p*(p-a)*(p-b)*(p-c))

看起来好像比上面的都要简单…… -.-b 各位看客不要打我!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-31
展开全部
d=|A×X1+B×Y1+C×Z1+D|÷√(A×A+B×B+C×C)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-31
展开全部
|A*X1+B*Y1+C*Z1+D|/(X1^2+Y1^2+Z1^2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-31
展开全部
d=|AX1+BY1+CZ1+D|/根号(A^2+B^2+C^2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式