math - 关于另一个矩形旋转移动一个矩形
问题描述
我有两个矩形:红色和绿色。对于他们每个人,我都有以下信息:
- 中心点(
x
和y
坐标)。 - 旋转角度
- 宽度和高度
矩形将始终在正坐标中移动。编辑:没有坐标可以是负的:矩形总是位于正坐标中。因此,中心永远不会是(0,0)。
问题
我有一个起始位置。为了简化示例,假设我的红色和绿色矩形的位置如下:
phi
现在,我使用0º 到 90º 之间的角度旋转红色矩形。但是,绿色矩形需要旋转并保持其相对于红色矩形的位置。绿色矩形不仅在旋转,而且还在移动。
让我们看一张图片(请原谅草图质量):
我的问题:
如何获得绿色矩形的新中心坐标?
解决方案
旋转大约是某个点(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)
推荐阅读
- python - 流图和动画
- python - 如何在继承自抽象基类的类中定义方法
- tcp - 当我们想使用 Javascript 通过 WebSocket 进行通信时,套接字如何将端口从 HTTP 80 更改为另一个端口?
- ruby-on-rails - Rails 4.2 Postgres 9.4.4 statement_timeout 不起作用
- sql-server - 使用 SQL Sserver 2008 重命名表中的列
- php - sort array using array_unique from external XML (CDATA)
- db2 - IBM Bluemix Db2 on Cloud“错误 401:SRVE0295E:报告的错误:401”
- swift - 有没有更简单的方法以编程方式查看 UIImageView ?
- reactjs - 将函数传递给组件但接收未定义
- html - 使用 XPath 选择具有最高 z-index 值的项目