【问题标题】:Moving a rectangle regarding another rectangle rotation关于另一个矩形旋转移动一个矩形
【发布时间】:2018-12-06 13:49:40
【问题描述】:

我有两个矩形:红色和绿色。对于他们每个人,我都有以下信息:

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

矩形将始终在正坐标中移动。 编辑: 坐标永远不能为负:矩形总是位于正坐标中。因此,中心永远不会是 (0,0)。

问题

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

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

让我们看一张图片(请原谅草图质量):

我的问题:

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

【问题讨论】:

    标签: math geometry rectangles


    【解决方案1】:

    旋转大约是某个点(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)
    

    【讨论】:

    • 那行不通。它不是自行旋转绿色矩形,而是在保持其相对于红色矩形的位置的同时旋转它。这就是说:我旋转了 red 矩形,而绿色的需要旋转并“移动”以保持其相对于红色矩形的位置。这不是简单的轮换。
    • 再次:旋转是围绕某个点。如果两个矩形都保持相互方向 - 这两个矩形的点是相同的(它们经历相同的仿射变换)。这个旋转中心是什么?
    • 旋转中心始终是红色矩形的中心,而不是绿色矩形的中心。因此,绿色矩形需要旋转和行进:绿色矩形的位置是相对于红色矩形的。绿色不会自行旋转。
    • OK,绿心新位置的公式还是对的。绿色矩形围绕红色中心旋转
    • 好的。还要彻底检查 Phi 角符号(公式可能取决于系统的惯用手和人类对它的解释)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2020-07-31
    • 2011-11-24
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多