判断点是否包含在任意姿态长方体内部

1. 背景

    为了能够快速判断一个点是否在3维空间中的任意姿态的长方体中,虽然,对于平行坐标平面的长方体(例如平行于oxy平面)的判断方法非常简单,但是,想要判断一个点是否包含在3维空间中的任意姿态的长方体比较复杂。


2. 判断原理

    如下图所示,我们其实只需要判断一个点是否在3组平行平面的同一侧即可以判断(前/后面,左/右面,上/下面),判断的方法比较简单:即利用如图所示中的与法线的夹角,当一个点(如图中点B)在左右面的同一侧时,与法线的夹角都是锐角或钝角;当一个点(如图中点A)在左右面的不同侧时,与法线的夹角必定一个为锐角一个为钝角;实际上,我们不需要判断角度,我们只需要判断余弦值的符号即可,即可以判断向量的内积的符号即可, 总结如下:

      判断点是否在两个平行面的同一侧 <=> 判断点与法线的夹角的大小 <=> 判断余弦值的符号 <=> 判断向量内积的符号

判断点是否包含在任意姿态长方体内部_第1张图片

你可能感兴趣的:(算法实现)