计算空间中两条线段的最小距离
2015-07-06 15:24
302 查看
来自个人百度空间的文章---2012.2.19
一、基础知识
本来是空间三维坐标系,只是为了便于理解所以采用一般的2维坐标,其实是一样的
1、设AB线段 A(A.x,A.y),B(B.x,B.y),在AB上有一点为Q,
Q.x=A.x+s*(A.x-B.x);
Q.y=A.y+s*(A.y-B.y);
2、设CD线段 C(C.x,C.y),D(D.x,D.y),在CD上有一点为P,
P.x=C.x+t*(C.x-D.x);
P.y=C.y+t*(C.y-D.y);
3、则求AB,CD的距离就变成了QP的长度了,也就是f(s,t)的最小值了。
4、求f(s,t)的偏导数,然后检查范围0<s<1,0<t<1;(拉格朗日求极值)
5、一般根据4的范围有4种情况
二、代码就算了,逻辑很简单,只是后面分析阶段很繁琐,且在二维中这种方式的求法适得其反。
一、基础知识
本来是空间三维坐标系,只是为了便于理解所以采用一般的2维坐标,其实是一样的
1、设AB线段 A(A.x,A.y),B(B.x,B.y),在AB上有一点为Q,
Q.x=A.x+s*(A.x-B.x);
Q.y=A.y+s*(A.y-B.y);
2、设CD线段 C(C.x,C.y),D(D.x,D.y),在CD上有一点为P,
P.x=C.x+t*(C.x-D.x);
P.y=C.y+t*(C.y-D.y);
3、则求AB,CD的距离就变成了QP的长度了,也就是f(s,t)的最小值了。
4、求f(s,t)的偏导数,然后检查范围0<s<1,0<t<1;(拉格朗日求极值)
5、一般根据4的范围有4种情况
二、代码就算了,逻辑很简单,只是后面分析阶段很繁琐,且在二维中这种方式的求法适得其反。
相关文章推荐
- 前端(移动端)开发利器Chrome Developer Tools秘籍(下)
- House Robber -- leetcode
- Python 学习 --- 基础知识
- json_encode 中文乱码
- 涨停板联盟7月7日分享。
- require,js 在项目中的应用
- ubuntu常见问题
- 【Effective Objective-C 2.0读书笔记】第三章:接口和API设计
- 前端(移动端)开发利器Chrome Developer Tools秘籍(上)
- 【C语言】二维数组中的查找,杨氏矩阵
- html5标签与css3媒体查询兼容ie8
- 判断Python输入是否为数字
- css3学习总结6--CSS3字体
- Java-main函数
- Chinese Segmentation Introduction
- CvBoostType
- JVM内存区域划分
- 创建视图 ORA-01031: 权限不足
- 一次查找sqlserver死锁的经历
- display:none与visible:hidden的区别