AABB上距离点最近的距离、AABB与球相交检测

AABB上距离点最近的距离、AABB与球相交检测

AABB 即轴对其矩形边界框(每一条边都平行于坐标轴的矩形边界框),2D中为无旋转的 矩形,3D中为无旋转的六面体,长宽高可以各不相同。

AABB内的点满足以下条件
Xmin < X < Xmax
Ymin < Y < Ymax
Zmin < Z < Zmax
两个重要的点
Pmin = (Xmin, Ymin, Zmin)
Pmax = (Xmax, Ymax, Zmax)
中心点C
C = (Pmin + Pmax) / 2
在这里插入图片描述
求AABB中与给定点 P(X,Y,Z)距离最近的点的坐标?
设B是由极值点Pmin和Pmax定义的AABB,对任意点P都能很容易的计算出在B上距离P最近的点P’ ,所用的方法是按一定顺序沿着每条轴将P“推向”B。
下面代码逻辑以 3D为例,如果是2D 中则将下面代码中 Z值得判断删掉即可

if (X < Xmin){
    X = Xmin;
}
else if (X > Xmax){
    X = Xmax;
}

if (Y < Ymin){
    Y = Ymin;
}
else if (Y > Ymax){
    Y = Ymax;
}

if (Z < Zmin){
    Z = Zmin;
}
else if (Z > Zmax){
    Z = Zmax;
}

经过上边几次比较赋值,得到AABB中距离点P最近的点P’(X,Y,Z)
则 PP’ 的长度就是点 P 到矩形 AABB的距离。

点是无大小的,由点可以引出一个球。球:距离一个点距离小于等于规定值R得所有点的集合。
上边我们求出了点P 到AABB的距离,那么如果一个以点P为中心,半径长为R的球,是否和AABB相交?
在这里插入图片描述
判断条件:
如果 PP’ 长度小于等于 R 则 球与AABB相交
如果 PP’ 长度大于R 则球与AABB不相交

一般为了避免开平方根的计算,会使用距离的平方作比较

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值