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

围绕另一个矩形旋转移动矩形

拓拔弘亮
2023-03-14

我有两个矩形:红色和绿色。对于它们中的每一个,我有以下信息:

  • 中心点(xy 坐标)。
  • 旋转角度
  • 宽度和高度

矩形将始终以正坐标移动。编辑:没有坐标可以是负的:矩形总是位于正坐标。因此,中心永远不会是(0,0)。

问题

我有一个起始位置。为了简化示例,假设我的红色和绿色矩形的位置如下:

现在,我使用0º和90º之间的角度φ旋转红色矩形。但是,绿色矩形需要旋转并保持其相对于红色矩形的位置。绿色矩形不仅在旋转,而且在移动。

让我们看一个图像(请原谅草图质量):

我的问题是:

如何获得绿色矩形的新中心坐标?

共有1个答案

阙奇思
2023-03-14

旋转大约是某个点(rx,ry)。

编辑:正如评论所说,旋转中心(rx,ry)是红色中心。公式保持不变。

如果绿色中心在(gx, gy),那么旋转后它有坐标

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

  • 我有两个矩形,其中一个是另一个的剪裁。现在我想围绕剪切矩形的中心旋转较大的矩形并调整x / y值。 如何计算旋转后的新x/y值? 我只想绕着小盒子的中心旋转大盒子的x/y。因此,较大盒子的x/y点相对于较小盒子的顶部/左侧点。我有小盒子的宽度和高度,所以我可以计算大盒子相对于小盒子中心的x/y点。旋转的角度以度为单位。旋转可以是任何角度,例如10度。

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

  • 我试着绕着它的中心旋转一个矩形。使用GraphicsContext ie gc将旋转绘制到画布上。这是我的绘图代码。 这会将矩形移动到其中心,然后围绕其左上角点旋转矩形。我试着把两边的长度和宽度减半,但那只会让它飞得到处都是。我数学不好也许这里有更好的人能告诉我我做错了什么。 如果需要的话,我还存储了矩形的所有四个点(角)。 谢了乔

  • 如题所述,我想知道如何围绕中心旋转绘制的矩形。 我目前正在使用以下代码: 现在,旋转发生在2D空间中,但我似乎无法集中矩形的旋转。相反,矩形一直围绕全局点0,0旋转。 我想我的旋转和平移设置不正确或顺序不正确。 我不想是什么阻止此代码产生所需的输出。任何建议和答案将不胜感激。 谢谢

  • 在上面的图片中,我展示了两个矩形 矩形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