美文网首页
[几何检测]

[几何检测]

作者: 想变的很强的日向彻 | 来源:发表于2019-10-09 19:37 被阅读0次


    1.2D隐式直线上的最近点

    直线L:p*n = d, 距离直线L上的一点q最近的点q1 = q + (d - q*n)n;

    和直线平行的为q*n = Dm,n为法向量,简单解释就是,将q沿着法向量方向移动d-dm个单位距离

    2.参数射线上的最近点

    射线L: p(t) = Porg + td;向量投影,即需要求出t,t是一个向量在另外一个向量上的投影,

    3.平面上的最近点

    同1,隐式直线上的最近点

    4.圆或球上的最近点

    qm = q + (||d|| - r) * d / ||d||,圆或球外一点距离最近的点(到圆心的距离和半径的比例)

    5.AABB上的最近点

    AABB有两个特别特殊的点,Pmin和Pmax,x,y,z的三个范围值

    6.相交性检测

    静态检测:检测两个静止图元是否相交

    动态测试:检测两个运动图元是否相交,这个值不是唯一的,而是一个和时间有关的动态的结果,即可能在某一个时间点相交,但还可能是在另外一个时间点不相交

    7.在2D中两条隐式直线的相交性检测

    两条直线的方程组求解

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

    9.射线与平面的相交性检测

    10.AABB和平面的相交性检测

    用AABB的八个顶点和平面的法向量进行点积,比较结果如果都大于0或者小于0,则说明在平面的一侧,如果有的大于0有的小于0,这说明平面穿过了AABB,八个顶点不必都进行检测,可以进行优化

    11.三个平面的相交性检测

    三个平面的向量表示的方程求解,根据分母是否为0判断有多少交点

    12.射线和圆/球的相交性检测

    计算球心或者圆心到射线的距离和半径进行比较,能知道射线是否和圆相交

    13.两个圆/球的相交性检测

    静止:圆心或者球心的距离和半径和作比较

    动态:将其中一个看成不动的,将两个运动向量组合

    14.球和AABB的相交性检测

    AABB和球心最近的点和半径作比较

    15.球和平面的相交性检测

    球心到平面的距离和半径作比较

    16.射线和三角形的相交性检测

    计算出射线和三角形平面的交点,判断这个点是否在三角形内

    tips:今早的进行一些检查,early out,昂贵的计算尽可能延迟调用和计算

    17.射线和AABB的相交性检测

    先判断射线会和哪个面相交,再通过射线和面的相交性检测来判断

    18.两个AABB的相交性检测

    静止比较好判断,运动的要将他投影到某个轴上,也就是降维

    19.OBB判断两个AABB是否相交

    两个凸包多边形,当且仅当存在一条线,这两个多边形在这条线上的投影不相交,则这两个多边形也不相交.

    相关文章

      网友评论

          本文标题:[几何检测]

          本文链接:https://www.haomeiwen.com/subject/scfipctx.html