射线和球的相交性

射线和球的相交性

  首先判定射线起点是否在圆内,如果在圆内,则必然相交。否则,转化为如下情形:

    

  我们示出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为负,则射线与圆不相交。

时间: 2024-10-14 20:40:36

射线和球的相交性的相关文章

射线和平面的相交性检测

[射线和平面的相交性检测] 对于射线:p(t)=p0+t*d,与平面p*n=d.如何知道此射线与平面是否相交?如果相交,如何求出交点? 1.求是否相交. 首先判断点是否在平面上,将点坐标代入平面公式计算即可得. 当d*n =0时,射线与平面平行,无交点. 当d*n <0时,射线射向与平面相反的方向,无交点. 综上,d*n  <=0时,射线与平面无交点. 2.相交时,交点坐标是什么? 利用点在平面上,可以得出.

hdu1174(3维射线与圆是否相交)

简单的题意,要注意z2 = h2*0.9-r2 #include <iostream> #include <cmath> #include <vector> #include <string.h> #include <stdlib.h> #include <algorithm> using namespace std; #define MAX_N 110 /*------------------常量区-----------------

两个运动球的相交性测试

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

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}\)也不必是单位向量.如果这两条射线在一个平面中,那么和前一节的情况一样,也存在有一种可能性: 两

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

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

Threejs 开发3D地图实践总结

前段时间连续上了一个月班,加班加点完成了一个3D攻坚项目.也算是由传统web转型到webgl图形学开发中,坑不少,做了一下总结分享. 1.法向量问题 法线是垂直于我们想要照亮的物体表面的向量.法线代表表面的方向因此他们为光源和物体的交互建模中具有决定性作用.每一个顶点都有一个关联的法向量. 如果一个顶点被多个三角形共享,共享顶点的法向量等于共享顶点在不同的三角形中的法向量的和.N=N1+N2: 所以如果不做任何处理,直接将3维物体的点传递给BufferGeometry,那么由于法向量被合成,经过

Axiom3D:Ogre射线与点,线,面相交,鼠标操作3维空间.

在第一篇网络分解成点,线,面.第二篇分别点以球形,线以圆柱,面分别以MergerBatch整合批次显示.因为整合批次显示后,相应的点,线,面不能以Ogre本身的射线来选取,因为整合后,以点举例,多个点显示虽然不在一起,但是是一个Mesh.Ogre本身的检测只能检测到这里,在我们这不满足要求,相应的点,线,面检测都需要自己来计算. 在讲解本文之前,先看下射线的相关生成代码,只有先明白射线如何生成,生成最后是相对什么空间. [OgreVersion( 1, 7, 2790, "Slightly di

AABB包围盒、OBB包围盒、包围球的比較

1) AABB 包围盒: AABB 包围盒是与坐标轴对齐的包围盒, 简单性好, 紧密性较差(尤其对斜对角方向放置的瘦长形对象, 採用AABB, 将留下非常大的边角空隙, 导致大量不是必需的包围盒相交測试).当物体旋转之后需对AABB 进行相同的旋转并更新; 当物体变形之后仅仅需对变形了的基本几何元素相应的包围盒又一次计算; 然后能够自下向上由子结点的AABB 合成父结点的AABB, 最后进行包围盒树的更新. 2) OBB 包围盒: OBB 碰撞检測方法紧密性是较好的, 可以大大降低參与相交測试的