三维空间中,已知3个点坐标。求其中一点要另外两点所构成的线段的距离

三维空间中已知3个点坐标。求其中一点要另外两点所构成的线段的距离延伸:由若干个线段组成的一个平面,求这点到这个平面的距离三个点:p(x,y,z),p1(x1,y1,z1)... 三维空间中 已知3个点坐标。
求其中一点要另外两点所构成的线段的距离

延伸:
由若干个线段组成的一个平面,求这点到这个平面的距离

三个点:p(x,y,z),p1(x1,y1,z1),p2(x2,y2,z2); 求p到线段p1p2的距离。本人数学基础不是很牢固,希望能解释各个步骤 。 小弟在此谢过啦
展开
eulerw
2013-01-07 · TA获得超过9189个赞
知道大有可为答主
回答量:1366
采纳率:37%
帮助的人:725万
展开全部
向量
p1p=(x-x1,y-y1,z-z1)
p1p2=(x2-x1,y2-y1,z2-z1)

再用
(x-x1)(x2-x1)+(y-y1)(y2-y1)+(z-z1)(y2-y1)的绝对值
除以
sqrt((x2-x1)^2+(y2-y1)^2+(z2-z1)^2)*sqrt((x-x1)^2+(y-y1)^2+(z-z1)^2)
(sqrt代表根号)

得到p1p和p1p2夹角的余弦cos值,这利用了向量内积的性质,你看下参考资料,可以由内积反推出cos值。

然后用 sin^2+cos^2=1,得到sin值。

最后用 sqrt((x-x1)^2+(y-y1)^2+(z-z1)^2) 乘以这个sin值,就结束了。

如果你还不满意,也可以用三角形面积=0.5×底×高来算。
三角形如果知道三条边的长度a,b,c,则面积S=0.5*根号下((a+b+c)*(a+b-c)*(a-b+c)*(-a+b+c))。

你可以先求出pp1p2的边长,然后代进去算出面积,然后高=2×S/底,就求出来了。
追问
错了了,我求的是最短距离,在三维空间内。这点的最短距离不一定在垂线上。
比如我在这个多边形的右上方,那么它到这个多边形的最短距离就成了右上点 到这个点的距离了。
追答
哦,那你需要求出C在AB的垂足的位置D,然后看垂足是否在线段AB上。如果不在线段上,则需要求出CA和CB里的较小的距离,就可以了!按我的方法,看AC和AB的夹角,是否小于90度(利用向量内积),如果BC和BA的夹角也小于90度(利用向量内积),则说明是个垂足会在AB上。否则的话,垂足不会在AB上,那么最短距离就会在顶点出现,不是A就是B。

参考资料: http://baike.baidu.com/view/1485493.htm

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式