【问题标题】:How to calculate points in a shape when shape is rotated旋转形状时如何计算形状中的点
【发布时间】:2014-04-03 04:29:38
【问题描述】:
我有一堆不同的形状,在这些形状上有 20 个点排列在一个网格中。我想弄清楚的是如何计算旋转形状时这些点的位置,这些形状可以从形状中心旋转任意角度。这些点从形状的左上角开始放置。
这里有几个形状示例,其中包含我希望在形状旋转时能够计算的点。我在 0 度处拥有所有形状的所有 x/y 坐标。我正在构建一个 JavaScript 应用程序,所以如果有人在 JavaScript 中有任何功能,那就太好了,或者如果你可以将我引导到有一些资源的地方。
【问题讨论】:
标签:
javascript
image
math
rotation
coordinates
【解决方案1】:
要将点 (Xold,Yold) 绕中心点 (Xc, Yc) 逆时针旋转角度角度,可以使用复杂的affine transformation,由旋转中心到原点的平移、围绕原点的旋转和反向平移组成。结果公式:
Xnew = Xc + (Xold - Xc) * Cos(Angle) - (Yold-Yc) * Sin(Angle)
Ynew = Yc + (Xold - Xc) * Sin(Angle) + (Yold-Yc) * Cos(Angle)