查看: 1840|回复: 9

【求助】点到直线的最短距离计算方法

[复制链接]

该用户从未签到

发表于 2012-11-6 15:46:08 | 显示全部楼层 |阅读模式
想问下,OSG中是否可以通过Matrix计算出点到直线的最短直线距离,计算要求如下。
我用几何方程可以计算出,单这种方法效率太低,想用角度计算的方法,但不清楚OSG中是否有现成的函数,所以投石问路。

图说明:
已知A、B、C的空间坐标,可以得出 |AC| 之间的距离和 A 的夹角θ,想通过 |AC|×sin(θ) , |AC|×cos(θ) 的方式来计算出R的坐标位置。

垂点计算.png
管道创建_1.png

该用户从未签到

发表于 2012-11-6 16:45:10 | 显示全部楼层
没有这样的方法  还是用数学方法解决吧 或许有更好的数学算法

该用户从未签到

发表于 2012-11-7 10:03:09 | 显示全部楼层
你可以这样算
1.V1=normalize(B-A),其中V1=(A,B,C,0)
2.通过点A(X1,Y1,Z1,1)和V1构造一个平面方程,记作P1,则有P1*A=0,这样可以计算出P(Px,Py,Pz,Pw)的系数。
3.C到平面P的距离为d=C*P/(sqrt(A*A+B*B+C*C)),这样CR=sqrt(AC*AC-d*d).

该用户从未签到

发表于 2012-11-7 12:44:24 | 显示全部楼层
可以很容易算出向量AR的模长,同时也知道向量AB的模长,可以算出分比λ ,由A,B点坐标,根据定比分点公式计算出R的坐标

该用户从未签到

 楼主| 发表于 2012-11-7 13:15:58 | 显示全部楼层
woshijiameizhou 发表于 2012-11-7 12:44
可以很容易算出向量AR的模长,同时也知道向量AB的模长,可以算出分比λ ,由A,B点坐标,根据定比分点公式计 ...

谢谢,这是个好方法,直接对向量作比例换算比较方便。

该用户从未签到

发表于 2012-11-7 17:11:52 | 显示全部楼层
知道3个点的坐标!可以求某一点到另2个点所构成线段的最短距离

该用户从未签到

发表于 2012-11-8 14:47:54 | 显示全部楼层
已知A、B、C的空间坐标,

向量AC和AB.Normal求点积结果就是AR的模,

然后根据|AB|:|AR|比值确定R的坐标

角不用求

该用户从未签到

发表于 2012-11-9 15:12:23 | 显示全部楼层
点P到直线AB距离,可以先计算AP在AB上的投影AP'然后得到,不用开根号,计算很迅捷

该用户从未签到

 楼主| 发表于 2012-11-12 08:46:28 | 显示全部楼层
array 发表于 2012-11-9 15:12
点P到直线AB距离,可以先计算AP在AB上的投影AP'然后得到,不用开根号,计算很迅捷

不知道这个投影用什么代码实现,能否再给点提示,谢谢~~

该用户从未签到

发表于 2012-11-12 14:48:46 | 显示全部楼层
点乘的几何意义是:向量A在B上投影的长度乘以B的长度,由此您就可以立即得到A在B上的投影向量了,进而通过向量减法得到垂线。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表