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

Auteur Sujet: [résolu] La fonction Origin (est inversé ?)  (Lu 5278 fois)

0 Membres et 1 Invité sur ce sujet

Assouan

  • Newbie
  • *
  • Messages: 22
  • texe perso
    • Voir le profil
    • E-mail
[résolu] La fonction Origin (est inversé ?)
« le: Avril 01, 2012, 05:20:21 pm »
Par exemple, si j'ai un texte, en position 100,100 (et je veux lui créer un décalage de 50,50) pour qu'il s'affiche en 150,150

Et bien je dois faire : SetOrigin(-50,-50);
Au lieu de : SetOrigin(50,50);

Es-ce normal que sa fonctionne inversement ?
« Modifié: Avril 13, 2012, 12:03:26 am par Assouan »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: La fonction Origin (est inversé ?)
« Réponse #1 le: Avril 01, 2012, 07:27:01 pm »
Oui, car tu attaques la mauvaise propriété. Il faut changer la position, pas l'origine.
Laurent Gomila - SFML developer

virelio

  • Newbie
  • *
  • Messages: 42
    • Voir le profil
Re : La fonction Origin (est inversé ?)
« Réponse #2 le: Avril 07, 2012, 06:21:30 pm »
Bonjour,

Tiens justement...
J'utilise le code ci-dessous pour centrer une lettre sur la position demiL, demiH.
Le centrage horizontal est correct mais le centrage vertical est mauvais et différent selon que la lettre est ronde (O, Q C) ou non.

sf::Glyph glyph = myFont.getGlyph( (sf::Uint32)myString[0], myText.getCharacterSize(), false);
    sf::IntRect r = glyph.bounds;
    myText.setPosition(demiL - (r.width - r.left)/2 - r.left, demiH + (r.top - r.height)/2 );

Quelle est la bonne méthode et à quoi correspond, du point de vue position r.top et r.left (r = glyph.bounds)

Je poste ici car il me semble que nous nous posons la même question.

Assouan

  • Newbie
  • *
  • Messages: 22
  • texe perso
    • Voir le profil
    • E-mail
Re : Re: La fonction Origin (est inversé ?)
« Réponse #3 le: Avril 09, 2012, 01:24:11 am »
Oui, car tu attaques la mauvaise propriété. Il faut changer la position, pas l'origine.
Alors à quoi sert la fonction Origin ?

Bonjour,

Tiens justement...
J'utilise le code ci-dessous pour centrer une lettre sur la position demiL, demiH.
Le centrage horizontal est correct mais le centrage vertical est mauvais et différent selon que la lettre est ronde (O, Q C) ou non.

sf::Glyph glyph = myFont.getGlyph( (sf::Uint32)myString[0], myText.getCharacterSize(), false);
    sf::IntRect r = glyph.bounds;
    myText.setPosition(demiL - (r.width - r.left)/2 - r.left, demiH + (r.top - r.height)/2 );

Quelle est la bonne méthode et à quoi correspond, du point de vue position r.top et r.left (r = glyph.bounds)

Je poste ici car il me semble que nous nous posons la même question.

Pourquoi ne pas simplement faire :
myText.SetPosition(demiL - (myText.GetGlobalBounds().Width / 2), demiH - (myText.GetGlobalBounds().Height / 2));

Orwel

  • Full Member
  • ***
  • Messages: 208
    • Voir le profil
Re : La fonction Origin (est inversé ?)
« Réponse #4 le: Avril 09, 2012, 02:31:03 am »
Citer
Alors à quoi sert la fonction Origin ?

L'origine ne modifie pas uniquement la position, mais aussi les rotations.
Moi je l'utilise pour superposer mes objets physiques et graphiques.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : La fonction Origin (est inversé ?)
« Réponse #5 le: Avril 09, 2012, 09:54:37 am »
Citer
Alors à quoi sert la fonction Origin ?
C'est marqué dans la doc non ? :P

Citer
Je poste ici car il me semble que nous nous posons la même question.
Pas vraiment non. C'est malin, maintenant on a deux problèmes mélangés, et j'ai la flemme de les démêler.
Laurent Gomila - SFML developer

Assouan

  • Newbie
  • *
  • Messages: 22
  • texe perso
    • Voir le profil
    • E-mail
Re : La fonction Origin (est inversé ?)
« Réponse #6 le: Avril 09, 2012, 01:35:02 pm »
Aaaah oui, d’accord ! c'est comme SetCenter de la version 1.6 !

Sa permet de dire d'où la position ou rotation et ... se fait ^^

Merci !

virelio

  • Newbie
  • *
  • Messages: 42
    • Voir le profil
Re : La fonction Origin (est inversé ?)
« Réponse #7 le: Avril 09, 2012, 02:39:41 pm »
de Laurent
Citer
Pas vraiment non. C'est malin, maintenant on a deux problèmes mélangés, et j'ai la flemme de les démêler.

Ok, je crée un nouveau post...