我有一个由中心(x,y,z)定义的圆,一个半径和一个方向向量,指定圆所面对的方向。我需要测试这样的圆是否与轴对齐的边界框相交。为了澄清,通过交叉,我的意思是如果圆圈描述的区域内的任何点都在边界框内,则构成“交叉点”。
这不是游戏,我宁愿不以某种方式近似圆圈。应该可以将圆形视为具有非常小的高度的圆柱体,如果这使得它更易于处理。
感谢。
尼克
答案 0 :(得分:1)
您的圆心点和矢量定义了一个平面;你的飞机与你的飞机相交(特别是6个组成你的箱子的飞机);这将为您提供一组线段。使用点线最近点算法,确定每个线段上距离中心点最近的点;如果距离的平方(使用距离比较的方形距离,它更快,同样准确)在该点和圆心点之间小于半径的平方,则框与圆相交。
注意:此过程是通用的;使用轴对齐的边界框可以使一切变得更加容易。