jma*_*erx 5 c++ algorithm geometry
给定形成OBB的中心点,宽度,高度和角度,如何找到给定点P是否在OBB内?
谢谢
我认为问题的皱纹是边界框可以旋转吗?如果是这样,对我来说最简单的解决方案似乎是在旋转坐标平面上进行所有计算,以边界框的中心为中心.
要计算相对于这些轴的点的坐标:
newy = sin(angle) * (oldy - centery) + cos(angle) * (oldx - centerx);
newx = cos(angle) * (oldx - centerx) - sin(angle) * (oldy - centery);
Run Code Online (Sandbox Code Playgroud)
(您可能需要根据应该如何测量角度来调整此值,我会留给您,因为您没有指定)
然后点击测试,正常方式:
return (newy > centery - height / 2) && (newy < centery + height / 2)
&& (newx > centerx - width / 2) && (newx < centerx + width / 2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5434 次 |
| 最近记录: |