求旋转矩形覆盖固定容器所需的最小缩放比例计算方法
旋转矩形完全覆盖固定容器的最小缩放比例计算方法
核心参数定义
- 固定容器:宽
W,高H - 待旋转矩形原始尺寸:宽
w,高h - 旋转角度:
θ(取0到π/2弧度即可,超过该范围的旋转具有对称性,结果一致)
推导逻辑
要让旋转后的矩形完全覆盖容器,本质是容器的所有顶点都必须落在旋转并缩放后的矩形内部。通过坐标系旋转和投影分析,可推导出两个约束条件:
- 容器在旋转矩形的原始宽度方向上的投影总和,不能超过缩放后矩形的宽度
s*w - 容器在旋转矩形的原始高度方向上的投影总和,不能超过缩放后矩形的高度
s*h
基于这两个约束,得到关于缩放因子s的不等式:
s ≥ (W*|cosθ| + H*|sinθ|) / w s ≥ (W*|sinθ| + H*|cosθ|) / h
最终计算公式
最小的缩放比例是上述两个值中的较大者,即:
s = max( (W*|cosθ| + H*|sinθ|)/w, (W*|sinθ| + H*|cosθ|)/h )
验证说明
- 当容器和矩形为同尺寸正方形时,旋转45度代入公式,得到
s=√2,和实际需求一致(缩放1.414倍后旋转刚好覆盖原正方形) - 当旋转角度为0时,公式退化为
s=max(W/w, H/h),即直接缩放至矩形能覆盖容器的最小比例,符合直觉
内容的提问来源于stack exchange,提问作者GtwoK
相关产品推荐
相关产品推荐

