一点绕另一点旋转

  |  

摘要: 一点绕另一点旋转的原理和代码

【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


点(向量) $\vec{P}$ 绕 O 旋转 $\theta$

点 $\vec{P}$ 绕原点 O 旋转后的点为 $\vec{P’}$

代码模板 (C++)

使用二维向量的代码模板。

1
2
3
4
5
6
7
8
9
// 返回点 P 以点 O 为圆心逆时针旋转 alpha 后所在的位置
Vector2 rotate(Vector2 O, double alpha, Vector2 P)
{
Vector2 new_P;
Vector2 OP = P - O;
new_P.x = OP.x * cos(alpha) - OP.y * sin(alpha) + O.x;
new_P.y = OP.y * cos(alpha) + OP.x * sin(alpha) + O.y;
return new_P;
}

Share