我需要能够计算矩形 2
的大小为了说明我的问题,这里有一个图表:
- 我知道矩形1的
宽度
和高度
- 我知道
rectangle 2
的纵横比以及最小height
和width
,它们总是大于 rectangle 1 - 我知道
旋转
的原点,它总是矩形1的中心 - 我知道
旋转
的 Angular 弧度 - 矩形 1 必须始终完全位于 矩形 2 内
鉴于上述变量,我需要计算矩形 2 的最小尺寸,同时保持其纵横比和旋转原点。
这个出色的函数计算旋转外矩形内可能的最大矩形。
Calculate largest rectangle in a rotated rectangle
我曾尝试以它为基础来实现我需要的行为,但到目前为止还没有成功。我会链接到它,以防它对数学知识比我丰富的任何人有所帮助。
如有任何帮助,我们将不胜感激。
最佳答案
在评论中你说这只是一个三 Angular 问题,所以我只写公式。
在您的图片中,右下角的三 Angular 形将成为您需要的较大矩形的一部分。
如果较小的 Angular 为x(等于旋转 Angular ),内矩形的边为a,则三 Angular 形的边为a * cos(x) 和a * sin(x)。当我们移动到内部矩形的下边,即下方的 b 时,我们将得到 b * cos(x), b * sin(x)。
图片是对称的,所以大矩形的一边是a * cos(x) + b * sin(x),另一边是a * sin(x) + b * cos(x)。这些是您需要的尺寸。
您可以检查 x = 0(无旋转)、x = pi/2 或 pi 以查看这些情况下的特殊情况和大小。
关于javascript - 计算限制另一个并保持纵横比的最小旋转矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26856020/