射线与平面的相交检测(Ray-Plane intersection test)
2015-12-16 09:28
302 查看
射线与平面的相交检测(Ray-Plane intersection test)
射线的定义
在欧几里德几何中,射线的定义是:直线上一点和它一旁的部分。由此可知,射线有两个性质,一是只有一个端点,二是一端无限延伸。射线的参数方程
其中p0是射线的起点, u是射线的方向向量,t >= 0,根据t的取值不同,可得射线上不同的点,所有这些点便构成了整个射线,如图
平面的定义
平面可以由法向量和平面内的一点来确定,因为过一点,有且只有一个平面与已知直线垂直平面的参数方程
其中n是平面的法向量,p0是已知的平面内一点,符号●表示 点积,因n与平面垂直,所以n与平面内任意直线垂直, 而(p-p0)则是平面内的一个向量,所以n与 (p-p0)垂直,而互相垂直的向量其点积为0,见下图
向量的点积公式
射线与平面的交点
有了射线和平面的参数方程,那么求二者的交点相当于解下面的方程组注意这里两个方程中的p0是不同的,为区别彼此,将平面方程中的p0改为p1,并将射线方程代入平面方程,整理得到
若t >= 0, 则射线与平面相交,且交点为p0 + tu,若t < 0,
相关文章推荐
- Windows Python Extension Packages
- 数字操作 转为false的类型 typeof操作符 isNaN函数
- 升级OpenSSH详细步骤
- 如何快速掌握一门技术
- android开发之synchronized的用法
- em px rem 区别
- 如何百倍加速 Lo-Dash?引入惰性计算
- 折腾响应式布局设计
- 最全面的常用正则表达式大全
- 图文详解Android属性动画
- SVN之初恋与小三Meld优秀分支合并工具
- AngularJS进阶(二十一)Angularjs中scope与rootscope区别及联系
- 谁说VIM不是IDE(转池建强博客文章)
- SVN之初恋与小三Meld优秀分支合并工具
- 《win7去掉桌面小箭头》
- AngularJS进阶(二十一)Angularjs中scope与rootscope区别及联系
- mySQL内存及虚拟内存优化设置[转]
- Sprint 冲刺第三阶段第6-10天
- 【整理】Eclipse注释模板
- 两个android程序间的相互调用传递参数