给定一个形成OBB的中心点,宽度,高度和角度,如何确定给定点P是否在OBB内?
谢谢
最佳答案
我认为您遇到的问题是边界框可以旋转吗?如果是这样,对我来说,最简单的解决方案似乎是在以边界框的中心为中心的旋转坐标平面中进行所有计算。
要计算相对于这些轴的点的坐标:
newy = sin(angle) * (oldy - centery) + cos(angle) * (oldx - centerx);
newx = cos(angle) * (oldx - centerx) - sin(angle) * (oldy - centery);
(您可能需要根据应如何测量角度来进行调整,由于您未指定,因此我将留给您)
然后点击测试,正常方式是:
return (newy > centery - height / 2) && (newy < centery + height / 2)
&& (newx > centerx - width / 2) && (newx < centerx + width / 2);
关于c++ - 指向OBB(定向边界框)算法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7328424/