如何将任意点旋转任意角度?

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 的练习。