首页 >后端开发 >C++ >如何围绕另一个点旋转 2D 点?

如何围绕另一个点旋转 2D 点?

Barbara Streisand
Barbara Streisand原创
2024-12-08 00:02:13291浏览

How do I Rotate a 2D Point Around Another Point?

围绕另一个点旋转一个点 (2D)

要确定定义碰撞检测形状的点,需要旋转围绕枢轴点的点。在这种情况下,枢轴点是形状的中心。

要将点 p 围绕另一个点 (cx, cy) 旋转一定角度(以弧度表示),请按照以下步骤操作:

  1. 通过减去 (cx, cy):

    p.x -= cx;
    p.y -= cy;
  2. 逆时针旋转点:

    float xnew = p.x * cos(angle) - p.y * sin(angle);
    float ynew = p.x * sin(angle) + p.y * cos(angle);
  3. 通过添加 (cx, cy):

    p.x = xnew + cx;
    p.y = ynew + cy;

使用此方法,您可以围绕任何其他点旋转任何点并确定对象的形状以进行碰撞检测。

以上是如何围绕另一个点旋转 2D 点?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn