如何计算缩放矩形尺寸以适配旋转后的外矩形?
旋转外矩形后适配内矩形的尺寸计算方案
问题场景
现有红色外矩形与黑色内矩形各带对应尺寸,初始状态下黑色矩形适配于红色矩形内部。需计算将红色矩形旋转任意角度(示例为45deg)后,黑色矩形仍能适配于其中的新尺寸。两矩形中心均位于(0,0)。已参考仅适用于黑色矩形为正方形场景的方案,需适配任意长宽比的黑色矩形。
可行解决方向
基于投影约束的推导
核心逻辑是:旋转后的外矩形四条边对黑色矩形顶点形成投影约束。设外矩形原始长宽为W、H,旋转角度为θ;黑色矩形目标长宽为w、h。黑色矩形所有顶点必须完全落在旋转后的外矩形内部,因此需满足外矩形在任意方向上的投影长度≥黑色矩形在同一方向的投影长度。
具体拆解为两组约束:- 外矩形旋转后在水平、垂直方向的投影范围,需完全覆盖黑色矩形的对应投影;
- 针对外矩形四条边的法向量方向,黑色矩形在该方向的投影长度不能超过外矩形的投影长度。
通过联立这些不等式,可求解出w和h的最大可行值。
坐标系变换+边界检测
将旋转后的外矩形通过逆变换转回原始轴对齐坐标系,此时问题转化为:在原始轴对齐的外矩形内,寻找一个最大矩形,使其旋转-θ后能完全适配(即原黑色矩形旋转-θ后的形状需落在原始外矩形内)。
推导时,设黑色矩形旋转-θ后的顶点坐标,需全部满足原始外矩形的边界条件(x ≤ W/2、x ≥ -W/2、y ≤ H/2、y ≥ -H/2),进而得到关于w和h的约束不等式,求解最优解。分角度区间的临界情况推导
根据旋转角度θ的大小,内接矩形的适配模式会出现两种临界状态:- 黑色矩形四条边分别与外矩形四条边相切;
- 黑色矩形两个顶点顶在外矩形对角边上,另外两个顶点顶在另外两条边上。
针对不同θ区间(例如θ ≤ arctan(H/W)或θ > arctan(H/W)),分别推导对应的w和h计算公式,可精准得到最优解。
内容的提问来源于stack exchange,提问作者user16484677
相关产品推荐
相关产品推荐

