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

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

Barbara Streisand
发布: 2024-12-08 00:02:13
原创
221 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板