我可以使用这个公式获得剪切或旋转矩形的边界框
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)
但如何结合这些?我只需要知道宽度和高度。通过剪切然后旋转形状来完成转换。
答案 0 :(得分:1)
只需构建用于组合变换的仿射矩阵并将其应用于顶点,然后获得y坐标和x坐标的差异。
请注意,第一对公式是错误的 - 它提供额外的宽度和高度。全宽:
shearedW = Width + Abs(Tan(shearX) * Height)