【问题标题】:How to rotate any point by any angle?如何将任意点旋转任意角度?
【发布时间】:2017-02-08 00:45:16
【问题描述】:

假设Vector2(x, y),我想将它旋转中心(或任何一点,它只是一个平移,所以我可以这样做),以弧度给出的任何给定angle
我的目标语言是javascript。

【问题讨论】:

标签: javascript math rotation geometry 2d


【解决方案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 编写代码留给读者作为练习。

【讨论】:

    猜你喜欢
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多