我有一个由中心点(x,y,z),半径和指定圆面朝向的方向向量定义的圆。我需要测试这样一个圆是否与轴对齐的边界框相交。为了澄清,所谓的相交是指如果圆内的任何点在边界框描述的区域内,则构成“相交”。
这不是用于游戏,我不想以某种方式逼近圆。不过,如果将圆视为具有非常小高度的圆柱体,则应该可以处理更容易。
谢谢。
Nick
这不是用于游戏,我不想以某种方式逼近圆。不过,如果将圆视为具有非常小高度的圆柱体,则应该可以处理更容易。
谢谢。
Nick
你的圆心和向量定义了一个平面;将该平面与你的盒子相交(具体来说是由你的盒子组成的6个平面);这将给你一组线段。使用点线最近点算法,确定每条线段上距离你的中心点最近的点;如果该点与你的圆心点之间的距离的平方(使用平方距离进行距离比较,它更快且同样准确)小于你半径的平方,则你的盒子与你的圆相交。
注意:这个过程是通用的;使用轴对齐边界框会使一切变得更加容易。