如何以任何角度旋转任何点?

时间:2017-02-08 00:45:16

标签: javascript math rotation geometry 2d

假设Vector2(x, y)我希望按照弧度给出的任何给定angle按中心(或任何点只是翻译,所以我可以这样做)旋转它。 /> 我的目标语言是javascript。

1 个答案:

答案 0 :(得分:1)

可以通过线性变换...矩阵乘法来执行旋转。

给定一个点p = (x, y)和一个旋转角度θ,结果点p' = (x', y')由下式给出:

p' = R(θ)⋅p

其中R(θ)是矩阵

       | cos(θ)    -sin(θ)|
R(θ) = |                  |
       | sin(θ)     cos(θ)|

由此产生的分解由

给出
x' = x⋅cos(θ) - y⋅sin(θ)
y' = x⋅sin(θ) + y⋅cos(θ)

在JavaScript中对此进行编码只是为读者留下的练习。