IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Création de jeux vidéo Discussion :

Rotation autour d'un point


Sujet :

Création de jeux vidéo

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut Rotation autour d'un point
    Bonjour à tous ,

    j'ai une petite question sur un truc sur lequel je galère :/.
    J'essaie de faire un jeu 2D et j'aurais besoin de faire une rotation d'un point (x,y) autour d'un point (a,b).
    Après quelques recherches, j'ai vu que je pouvais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int angle = -90;
    float x = pointABouger.getX();
    float y = pointABouger.getY();
    float a = pointDeRotation.getX();
    float b = pointDeRotation.getY();
    float xBis = (float) ((x) * Math.cos(angle)) - (float) ((y) * Math.sin(angle));
    float yBis = (float) ((x) * Math.sin(angle)) + (float) ((y) * Math.cos(angle));
    Mais apparemment, cette rotation se fait par rapport à la base de mon repère (0,0). Moi j'aimerais la faire autour de (a,b) mais je ne sais pas comment intégrer ces données aux équations.

    Vous avez une idée ? Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Il suffit de considérer le centre de la rotation comme l'origine (0, 0) et d'exprimer avec ce nouveau repère le point à transformer dans tes formules de rotation.
    On pourrait avoir les formules suivantes :
    X = x - a
    Y = y - b
    xBis = a + X * cos(angle) - Y * sin(angle)
    yBis = b + X * sin(angle) + Y * cos(angle)
    Tutoriels et FAQ TypeScript

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut
    C'est EXACTEMENT ce qu'il me fallait. Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rotation autour d'un point en 3D
    Par izissie dans le forum Physique
    Réponses: 6
    Dernier message: 08/03/2012, 14h55
  2. [XNA] Rotation d'un sprite autour d'un point
    Par DotNET74 dans le forum Windows Phone
    Réponses: 4
    Dernier message: 20/10/2011, 09h21
  3. Rotation GluLookAt autour d'un point central
    Par Dross dans le forum C++
    Réponses: 5
    Dernier message: 11/07/2011, 11h05
  4. Rotation caméra autour d'un point fixe
    Par jbeaussier dans le forum OpenGL
    Réponses: 3
    Dernier message: 24/01/2008, 00h16
  5. Rotation autour d'un point
    Par Webhellfire dans le forum OpenGL
    Réponses: 1
    Dernier message: 10/01/2006, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo