这不是完整的答案,但我会采用四个角,坐标按角度旋转它们,然后根据新坐标的范围计算新的边界框.
(假设左下角的原点坐标).
原文链接:https://www.f2er.com/php/133942.html(假设左下角的原点坐标).
corners = rotate_each ( [(left,top) (left,bottom),(right,top),bottom)],angle) new_bb_left = min([corners[0].x,corners[1].x,corners[2].x,corners[3].x]) new_bb_right = max([corners[0].x,corners[3].x]) new_bb_bottom = min([corners[0].y,corners[1].y,corners[2].y,corners[3].y]) new_bb_top = max([corners[0].y,corners[3].y])