射线和平面的相交性检测

射线和平面的相交性检测

  对于射线:p(t)=p0+t*d,与平面p*n=d。如何知道此射线与平面是否相交?如果相交,如何求出交点?

  

  1、求是否相交。

    首先判断点是否在平面上,将点坐标代入平面公式计算即可得。

    当d*n =0时,射线与平面平行,无交点。

    当d*n <0时,射线射向与平面相反的方向,无交点。

   综上,d*n  <=0时,射线与平面无交点。

  2、相交时,交点坐标是什么?

    

   利用点在平面上,可以得出。

    

时间: 2024-12-26 08:18:26

射线和平面的相交性检测的相关文章

AABB和平面的相交性检测

[AABB和平面的相交性检测]

在3D中两条射线的相交性检测

摘自[3D数学基础: 图形与游戏开发] 考虑在3D中两条以参数形式定义的射线: \(\vec{r_1}(t_1)=\vec{p_1}+t_1\vec{d_1}\) \(\vec{r_2}(t_2)=\vec{p_2}+t_2\vec{d_2}\) 我们能够解得它们的交点.暂时先不考虑\(t_1,t_2\)的取值范围.因此,我们考虑的是无限长的射线:同样,向量\(\vec{d_1},\vec{d_2}\)也不必是单位向量.如果这两条射线在一个平面中,那么和前一节的情况一样,也存在有一种可能性: 两

射线和球的相交性

[射线和球的相交性] 首先判定射线起点是否在圆内,如果在圆内,则必然相交.否则,转化为如下情形: 我们示出t,即可示得交点坐标.t=a-f.a很容易求,dot(e,d)即可.而f^2+b^2=r^2,为求f,需要先求出b.其中b^2+a^2=e^2,可求出b.因此最后可解出f. 最后的公式为: 如果r^2-e^2+a^2为负,则射线与圆不相交.

道路运输车辆卫星定位系统标准符合性检测 ----新规则、新方法

道路运输车辆卫星定位系统标准符合性检测 ----新规则.新方法 全称叫道路运输车辆卫星定位系统标准符合性检测或道路运输车辆卫星定位系统标准符合性审查,口语(或简称)为过检.交通部过检.平台过检.平台测试等等,符合性审查分硬件和平台,硬件就是即是车载终端,平台即运营平台,平台分企业平台.政府平台,企业平台分经营性与非经营性平台,政府平台分市级平台与省级平台.在这里讨论的是平台符合性审查,而非硬件. 此博文只介绍2015年恢复检测之后,采取的新测试规则,新测试方法.关于符合性审查的更详细说明,请参看

两个运动球的相交性测试

[两个运动球的相交性测试] 首先,两个运行的球,可以转化为一个静止,一个运动的相对运动. 其后,利用三角公式,按下图原理,即可计算出t. 最后化简,可得最后公式: t有一大一小俩值,小的是开始接触的值,大的是结束接触的值.如果t小于0,则无交点.

3D空间中射线与三角形的交叉检测算法

引言 射线Ray,在3D图形学中有很多重要的应用.比如,pick操作就是使用射线Ray来实现的,还有诸如子弹射线的碰撞检测等等都可以使用射线Ray来完成.所以,在本次博客中,将会简单的像大家介绍下,如何进行Ray-Triangle的交叉检测. Ray-Triangle交叉检测算法 在Tomas Moller的MT97论文中,提出了一种新的算法.这种算法能够减少以前进行Ray-Triangle交叉检测所需要的内存消耗.在以前,进行Ray-Triangle交叉检测,主要是计算射线与三角形所构成的平面

对象存在性检测集中管理

在大型业务系统中, 常常需要从数据库中查询某个实体对象. 在进行处理之前, 必须先检测该实体是否存在,以增强系统的健壮性. 不过, 检测代码充斥在主业务流程中又会大大降低业务逻辑的清晰性, 最好集中起来进行管理. 因此,编写了一个类来做这个事情, 只需要一行调用就可以完成相应实体对象的检测. 美中不足的一点是, 打 log 的位置发生变化了.由于打 log 的主要目标是为了便于调试和定位错误位置, 为了补偿, 一种办法是调用方法时根据具体语境传入自定义的错误消息, 根据错误消息可以定位错误位置:

链表操作 -- 两个链表间的相交性问题

本文参考: http://blog.csdn.net/g_brightboy/article/details/6824834 http://blog.csdn.net/huangxy10/article/details/8014233 在此致谢. 问题: 给定两个链表,判断它们是否相交. 注意: 如果两个链表相交的话,则公用相交点开始往后的所有节点.[因为节点的next指针只有一个!] 解答: 1)首先来看最直观的方法,也就是一次判断链表A中的节点是否在链表B中出现. 时间复杂度:O(n2) 空

Ambient Occlusion

一般在光照模型中,ambient light的计算方法为:A = l * m,其中l表示表面接收到的来自光源的ambient light的总量,而m表示表面接收到ambient light后,反射和吸收的量.出于性能考虑,在计算光照时,我们是不考虑那些从场景中其他物体反弹过来的光的,因为通常我们认为这些光在场景中被发散和弹射许许多多次以至于最后从各个方向照射到物体上的量是相同的.所以ambient light所做的就是提亮物体,它没有任何真实的物理光照计算,所以它最终的渲染效果就是一个常量颜色: