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
Libérer: 2024-12-08 00:02:13
original
225 Les gens l'ont consulté

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;
    Copier après la connexion
  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);
    Copier après la connexion
  3. Traduisez le point en ajoutant (cx, cy ):

    p.x = xnew + cx;
    p.y = ynew + cy;
    Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal