明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2396|回复: 2

求助:空间中的两条直线的最近点

[复制链接]
发表于 2007-10-19 14:08:00 | 显示全部楼层 |阅读模式

空间中的两条直线pt1.pt2和pt3.pt4交叉而不相交,如何求出直线上与另一直线最近的点?

发表于 2007-10-21 18:01:00 | 显示全部楼层

给出一个思路

 设2直线的矢量分别为

  v1=pt1 - pt2

  v2=pt3 - pt4

1. v1v2决定的平面法线

   vn = v1 x v2    (外积)

2. v1且法线vn的平面方程为

  vn(1)(x-pt1(1))+ vn(2)(y-pt1(2))+ vn(3)(z-pt1(3))=0

整理后

  vn(1) x + vn(2) y + vn (3) z - ( vn(1) pt1(1)+ vn(2) pt1(2)+ vn(3) pt1(3 ) ) =0

 

3. v1v2不相交的话,v2必不在上面的平面内

v2的端点在上面的平面上的投影点分别为

  pt3  --> w1

  pt4  --> w2

【点在平面上的投影点的求法:

设点P(P1,P2,P3) 平面 Ax + By + Cz + D = 0 上的投影点Q(Q1,Q2,Q3)的求法.

PQ的距离为t , 直线PQ与平面的法线N(A,B,C)平行,所以,

Q=P + t N

Q1 = P1 + At

   Q2 = P2 + Bt

   Q3 = P3 + Ct

由于Q在平面上,所以,

   A P1 + A2t + B P2 + B2t + C P3 + C2t + D = 0

整理得

   t = - (A P1 + B P2 + C P3 + D) / (A2 + B2 + C2)

因此, 投影点Q的成分为

   Q1 = P1 - A (A P1 + B P2 + C P3 + D) / (A2 + B2 + C2)

   Q2 = P2 - B (A P1 + B P2 + C P3 + D) / (A2 + B2 + C2)

   Q3 = P3 - C (A P1 + B P2 + C P3 + D) / (A2 + B2 + C2)

 

4.结论:

  这样就可以求出v1(pt1,pt2)v2在上面的平面上的投影线(w1,w2)的交点G, G点做直线v2的垂足H (求法在本论坛公布过), 则线段GH的长度就是所要求的距离;如果没有交点, 说明v1v2是平行直线, 则过直线v1上任意一点P, v2的垂足Q, 则线段PQ的长度就是所要求的距离.

 楼主| 发表于 2007-10-23 13:34:00 | 显示全部楼层
多谢Jkbanana师傅的指点,目前对于法面等理解有限,路比较远,想到土的办法:在其中一条线上分割成若干个点,比较各点与另一条线的垂线长度,取最短的,依此类推,经若干次运算得出一结论,不知行不行?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 12:27 , Processed in 0.171270 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表