Javascript 计算限制另一个矩形并保持纵横比的最小旋转矩形
我需要能够计算矩形2的大小 为了说明我的问题,这里有一个图表:Javascript 计算限制另一个矩形并保持纵横比的最小旋转矩形,javascript,algorithm,math,geometry,Javascript,Algorithm,Math,Geometry,我需要能够计算矩形2的大小 为了说明我的问题,这里有一个图表: 我知道矩形1的宽度和高度 我知道矩形2的纵横比以及最小高度和宽度始终大于矩形1 我知道旋转的原点,它始终是矩形1的中心 我知道旋转的角度在弧度中 矩形1必须始终完全位于矩形2 给定上述变量,我需要计算矩形2的最小尺寸,同时保持其纵横比和旋转原点 这个优秀的函数计算旋转外矩形中可能的最大矩形 我曾试图以此为基础来达到我所要求的行为,但迄今为止运气不佳。我正在链接到它,以防它对任何比我有更高数学知识的人都有帮助 非常感谢您的帮助
- 我知道矩形1的宽度和高度
- 我知道
矩形2的纵横比以及最小
高度
和
宽度
始终大于矩形1
- 我知道
旋转的原点,它始终是矩形1的中心
- 我知道
旋转的角度
在弧度中
- 矩形1必须始终完全位于矩形2
非常感谢您的帮助。在您的评论中,您说这只是一个三角问题,所以我只写公式 在您的图片中,右下角三角形将是您需要的较大矩形的一部分 如果较小的角度是x(等于旋转角度),内部矩形的边是a,那么三角形的边将是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进行检查,以查看这些情况下的特殊情况和尺寸。旋转角度是否在0到1/2弧度之间?角度将出现在所有小的相邻三角形中,因此你可以很容易地找到新矩形的顶点。角度可以在半圈内的任何地方,因此0-1Pi弧度。至于相邻三角形的概念,这对你有用吗?这是一个三角问题,不是编程。@TimothyHa,这确实是一个三角问题。这就是为什么我在苦苦挣扎,因为我对这类数学的掌握很差。我认为这个公式对0是有效的。这看起来很棒,谢谢。。。我会很快用javascript写出来,当我确认后,会将你的答案标记为正确。@gordyr你在这方面的进展如何?对不起,伙计,完全忘记给你答案了。再次感谢你的帮助,它让我找到了我需要的地方。