当前位置: 首页 > 知识库问答 >
问题:

计算与另一个矩形边界并保持坡向的最小旋转矩形

丁雅懿
2023-03-14

我需要能够计算出矩形2的大小

为了说明我的问题,这里有一个图表:

  • 我知道矩形的宽度高度 1
  • 我知道矩形2的纵横比以及始终大于矩形1的最小高度宽度
  • 我知道旋转的起源,它始终是矩形1的中心
  • 我知道弧度旋转角度
  • 矩形 1 必须始终完全位于矩形 2 内

给定上述变量,我需要计算矩形2的最小尺寸,同时保持其纵横比和旋转原点。

这个优秀的函数计算旋转外矩形中最大的可能矩形。

计算旋转矩形中的最大矩形

我试图用它作为基础来实现我所要求的行为,但迄今为止没有运气。我链接到它,以防它对比我有更多数学知识的人有所帮助。

任何帮助都将不胜感激。

共有1个答案

田骁
2023-03-14

在评论中,你说这只是一个三角问题,所以我只写公式。

在您的图片中,右下角三角形将是您需要的大矩形的一部分。

如果较小的角度是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,0)。 问题 我有一个起始位置。为了简化示例,假设我的红色和绿色矩形的位置如下: 现在,我使用0º和90º之间的角度φ旋转红色矩形。但是,绿色矩形需要旋转并保持其相对于红色矩形的位置。绿色矩形不仅

  • 我正在做一个WebGL(带有2d画布后备照片编辑器)。 我决定将旋转直接纳入裁剪工具,以类似于iOS8照片裁剪器的方式。也就是说,当您旋转照片时,照片的大小和位置会动态变化,以便裁剪区域始终包含在照片本身中。 但是,我正在为一些数学而苦苦挣扎。 我有两个矩形,照片和裁剪区域。 两者都被定义为: 定义照片本身的矩形也有一个以弧度表示的< code>rotation属性,它当然描述了照片的角度(以弧度

  • 我有两个带枢轴的矩形, 我需要根据红色矩形的旋转来附加绿色矩形的位置 结果应该如图所示: 我尝试了不同的公式,但没有成功 红色矩形: 绿色矩形: 我尝试了这样的方法: 非常感谢所有帮助过我的人!

  • 在上面的图片中,我展示了两个矩形 矩形1,其x可以从-900到13700不等,Y可以从-600到6458 矩形2,其坐标X可以从0到3000变化,而y可以从0到2000变化 同样:矩形2的起点位于左上角位置(0,0),而矩形1的起点位于左上角位置(宽度/2,高度/2)。 我需要做的是:使用缩放或平移将矩形1的点转换为矩形2的点。 那么,为了将矩形1的坐标转换为矩形2的坐标,< code>x和< c

  • 我使用JavaSlick StateBaeedGame,并希望旋转我的矩形我的碰撞,我知道这是可以做的视觉目的使用图形或Graphics2D对象,但不修改矩形本身,最初列出的变量和图形方法中调用的矩形不旋转,使事情更清楚这里是一些代码: 当我加载GUI时,矩形rectTwo将显示为旋转,但它实际上并没有旋转,如果我测试碰撞,矩形仍然为0度。 那么,如何让矩形变量改变其角度呢?

  • 我刚开始使用JavaFX,有一个问题。在我的项目中,我想使用旋转矩形。但矩形只围绕其中心旋转,我希望它围绕其左上角旋转。 就像这张照片(从这里开始): 下面是我的项目中的一些代码: 在这种情况下,如果按下箭头键,矩形会旋转。