我在这里浏览了其他一些接近的答案,但是找不到解决我问题的任何方法。
我有一个绕轴位置旋转的多边形,我需要找到该多边形的边界框。本质上,边界框对象应具有左上角的x
和y
位置,以及框本身的width
和height
。我可以使用此代码来计算不旋转的多边形的框,但它也不考虑旋转。红色正方形是当前没有旋转的边界框,绿色圆圈是旋转轴,多边形是多边形本身。
理想情况下,我不想在每次调用时重新计算每个顶点的位置以获取边界框,而是希望它位于数学本身中。这是不旋转的多边形和边界框的示例:https : //i.imgur.com/MSOM9Q1.mp4
这是我当前的代码,用于查找非旋转多边形的边界框:
const minX = Math.min(...this.vertices.map((vertex) => vertex.x));
const minY = Math.min(...this.vertices.map((vertex) => vertex.y));
return {
x: minX + this.position.x,
y: minY + this.position.y,
width: Math.max(...this.vertices.map((vertex) => vertex.x)) - minX,
height: Math.max(...this.vertices.map((vertex) => vertex.y)) - minY
};
多边形对象结构:
该position
是多边形的中心
的rotationAxis
是相对于多边形的中心(位置)的矢量
所述vertices
阵列可相对于多边形的中心向量的列表
边界框结构:
我需要做什么来计算旋转多边形的边界框?
九州编程
相关分类