Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Normaliser un Vector2f  (Lu 3604 fois)

0 Membres et 1 Invité sur ce sujet

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Normaliser un Vector2f
« le: Mars 18, 2013, 12:51:25 pm »
Salut, je cherche un moyen de normaliser un Vector2f afin d'envoyer un bullet vers une cible. Je suis parti voir dans la documentation de SFML mais je n'ai trouvé à ce sujet. Avec XNA, je n'avais juste qu'à utiliser la fonction normalize() de la classe Vector2. Voici mon code :

this->movement = movement;
    if (movement == 5) {
        this->target = this->position - target;
        target.normalize();  // ???
    }

Merci pour votre aide.

Koryushin

  • Jr. Member
  • **
  • Messages: 93
    • Voir le profil
Re : Normaliser un Vector2f
« Réponse #1 le: Mars 18, 2013, 01:10:01 pm »
Salut, pour te répondre les sf::vector de SFML ne sont pas des vecteur mathématiques à proprement parler.
Il est cependant possible de rajouter des fonctions soit même.

Pour normaliser un vecteur, il faut connaitre sa norme (sa longueur) et ensuite diviser ses composantes par cette norme.
sf::vetor2f vecteur(3.f,2.f);
float norme = std::sqrt(vecteur.x*vecteur.x + vecteur.y*vecteur.y);
vecteur = vecteur / norme;
 

Dans les grande ligne c'est ce qu'il faut faire il y a surement des précautions à prendre. Peut être que quelqu'un d'autre saura amener plus de précisions la dessus.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Normaliser un Vector2f
« Réponse #2 le: Mars 18, 2013, 01:11:04 pm »
La seule précaution à prendre c'est de ne pas faire la division si la norme est égale à 0.
Laurent Gomila - SFML developer

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : Normaliser un Vector2f (résolu)
« Réponse #3 le: Mars 18, 2013, 01:13:03 pm »
Merci à vous deux.

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : Normaliser un Vector2f
« Réponse #4 le: Mars 18, 2013, 01:20:52 pm »
Je viens de tester le code Koryushin et ça marche parfaitement. Merci beaucoup car j'aurais jamais trouvé tout seul. Je me suis crée un petite fonction dans ma classe bullet et le tour est joué. Merci encore :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Normaliser un Vector2f
« Réponse #5 le: Mars 18, 2013, 01:27:15 pm »
Citer
Merci beaucoup car j'aurais jamais trouvé tout seul
Faut pas exagérer, une formule aussi simple et commune se trouve en 2 secondes avec Google.
Laurent Gomila - SFML developer

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : Re : Normaliser un Vector2f
« Réponse #6 le: Mars 18, 2013, 01:47:39 pm »
Citer
Merci beaucoup car j'aurais jamais trouvé tout seul
Faut pas exagérer, une formule aussi simple et commune se trouve en 2 secondes avec Google.

Oui mais je veux dire justement, je n'aurais pas créer cette fonction sans prendre le code quelque part. Selon mes recherches sur Google, j'ai trouvé de tout sans être vraiment sûr que c'était la bonne solution d'où mon topic. Je n'aime pas bêtement copier-coller un code qui sort de Google sauf si vraiment je sais que c'est ce que je cherchais.