获取剪切和旋转矩形的边界框

时间:2017-02-18 10:52:30

标签: math geometry transformation bounding-box

我可以使用这个公式获得剪切或旋转矩形的边界框

shearedW = Abs(Tan(shearX) * Height) + Width
shearedH = Abs(Tan(shearY) * Width) + Height
rotatedW = Abs(Cos(angle) * Width) + Abs(Sin(angle) * Height)
rotatedH = Abs(Sin(angle) * Width) + Abs(Cos(angle) * Height)

但如何结合这些?我只需要知道宽度和高度。通过剪切然后旋转形状来完成转换。

1 个答案:

答案 0 :(得分:1)

只需构建用于组合变换的仿射矩阵并将其应用于顶点,然后获得y坐标和x坐标的差异。

请注意,第一对公式是错误的 - 它提供额外的宽度和高度。全宽:

shearedW =  Width + Abs(Tan(shearX) * Height)