【发布时间】:2017-02-08 00:45:16
【问题描述】:
假设Vector2 是(x, y),我想将它旋转中心(或任何一点,它只是一个平移,所以我可以这样做),以弧度给出的任何给定angle。
我的目标语言是javascript。
【问题讨论】:
标签: javascript math rotation geometry 2d
假设Vector2 是(x, y),我想将它旋转中心(或任何一点,它只是一个平移,所以我可以这样做),以弧度给出的任何给定angle。
我的目标语言是javascript。
【问题讨论】:
标签: javascript math rotation geometry 2d
可以通过线性变换...矩阵乘法来执行旋转。
给定一个点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 编写代码留给读者作为练习。
【讨论】: