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

Développement 2D, 3D et Jeux Discussion :

[2D] Pivoter un objet en direction de la souris


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 12
    Points
    12
    Par défaut [2D] Pivoter un objet en direction de la souris
    Bien le bonjour tout le monde !

    J'ai une petite question que je vais essayer de rendre le plus clair possible.

    Pour un projet Directx sous vbnet, j'affiche un sprite. Celui-ci devrait pivoter sur lui même en direction du curseur de la souris. Mon probleme est que je n'ai pas trouvé le moyen de récuperer l'angle de rotation en fonction des coordonnées du sprite et ceux du curseur de la souris.

    Quelqu'un pourrait-il m'eclairer sur le sujet ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Un peu de trigo : avec le sprite, le curseur et un point sur l'axe de rotation 0°, tu as un triangle rectangle. Donc tu peux récupérer le cosinus et le sinus de ton angle, donc ton angle.

    Si tu veux des précisions sur les formules ou un petit dessin n'hésite pas à demander.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Alors là bien vu, reste plus qu'à mettre ton idée en pratique.
    J'accepterai volontier des exemples si celà t'es possible

    Merci beaucoup

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Le petit dessin :



    Oups petite erreur : il faut lire "arccos(c)"

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour ton aide

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pense au bouton si c'est le cas, et... essaye à l'avenir d'éviter le vilain multipost que je viens d'apercevoir


  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Je suis désolé de t'embeter encore sur le sujet mais je m'embrouille avec les maths...

    Imaginons , d'après ton schéma, les conditions suivantes :

    B = 50
    A = 30

    Donc C = ((50^2) + (30^2)) ^ (1/2)

    c = cos(r) = 50 / 58.30
    s = sin(r) = 30 / 58.30

    D'après MS, arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1) avec X = 0.857

    Ca me donne un nombre décimal < 1

    J'ai du mal interpreté tes formules, pourrais-tu m'aider ?

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ca semble correct, si tu obtiens un nombre très petit c'est parce que l'angle renvoyé est en radians.

    Sinon si tu programmes en C ou C++, tu as une fonction atan2 qui prend en paramètre directement les côtés A et B et te sort l'angle correspondant.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Exact c'est en radian, l'angle ressort avec la formule (angle*pi)/180
    Merci, je t'embete plus !

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

Discussions similaires

  1. [CR XI] Faire pivoter un objet ole
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/05/2011, 15h27
  2. [E-03] Comment faire pour qu'un objet s'enfuie quand la souris approche
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/03/2009, 17h52
  3. Objet jsp directive.include
    Par Rifer dans le forum JSF
    Réponses: 2
    Dernier message: 19/02/2009, 16h03
  4. Regard en direction de la souris
    Par frog43 dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 16/10/2007, 17h32
  5. Acceder à un objet dynamiquement créé (via la souris)
    Par gregcat dans le forum Composants VCL
    Réponses: 5
    Dernier message: 02/12/2005, 19h16

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