旋转正方形后计算新边界

时间:2014-06-10 05:53:16

标签: ios objective-c trigonometry

旋转正方形后,我正试图计算边界框的大小。我附上了一张图片,希望能够描述我想要做的事情。

enter image description here

旋转x度后,边界变大。考虑到原始方块的角度和尺寸,有没有办法计算这个新尺寸?谢谢。

2 个答案:

答案 0 :(得分:2)

这可以通过Pythag的2次申请来解决。

较大的正方形的每一边都被小蓝方块的一角分成两半。让这两个部分中较大的一个称为长度a,较小的长度b(尽管如果x> 45度则b将更大),边长为l为蓝色方块,L为黑色方块的长度。

我们可以将第一个计算为:Cos(x)= a / l。 第二个是Sin(x)= b / l

因此我们得到L =(Sin(x)+ Cos(x))* l。

编辑:在两种情况下,面积当然都是边长。

答案 1 :(得分:1)

仅当您有坐标时才有效。如果你可以得到四个顶点的坐标,那就太容易了。让我们假设边界左上角的点为A。并且方块的前两个顶点是sq_a和sq_b。顶点A的值为(sq_a.x,sq_b.y)。然后通过对称,在边界和正方形之间形成的所有小的四个三角形将具有相同的面积。计算Asq_asq_b之间形成的三角形的面积(应该很容易.. 1/2 * breadth * height)。乘以4,您将获得总面积。对不起发布详细的照片。