Maison >développement back-end >C++ >Comment faire pivoter un point 2D autour d'un autre point ?

Comment faire pivoter un point 2D autour d'un autre point ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-08 00:02:13228parcourir

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

Rotation d'un point autour d'un autre point (2D)

Pour déterminer les points qui définissent une forme pour la détection de collision, il est nécessaire de faire pivoter les points autour d’un point pivot. Dans ce cas, le point pivot est le centre de la forme.

Pour faire pivoter un point p autour d'un autre point (cx, cy) d'un angle en radians, suivez ces étapes :

  1. Traduisez le point jusqu'à l'origine en soustrayant (cx, cy):

    p.x -= cx;
    p.y -= cy;
  2. Faites pivoter le point dans le sens inverse des aiguilles d'une montre:

    float xnew = p.x * cos(angle) - p.y * sin(angle);
    float ynew = p.x * sin(angle) + p.y * cos(angle);
  3. Traduisez le point en ajoutant (cx, cy ):

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

En utilisant cette méthode, vous pouvez faire pivoter n'importe quel point autour de n'importe quel autre point et déterminer la forme d'un objet pour la détection de collision.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn