如何将任意点旋转任意角度?
How to rotate any point by any angle?
假设 Vector2
是 (x, y)
我想按任何给定的 angle
以弧度给定的中心(或任何点,它只是一个平移,所以我可以这样做)旋转它。
我的目标语言是 javascript。
可以通过线性变换...矩阵乘法来执行旋转。
给定一个点 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 中编写此代码留作 reader 的练习。
假设 Vector2
是 (x, y)
我想按任何给定的 angle
以弧度给定的中心(或任何点,它只是一个平移,所以我可以这样做)旋转它。
我的目标语言是 javascript。
可以通过线性变换...矩阵乘法来执行旋转。
给定一个点 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 中编写此代码留作 reader 的练习。