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

Auteur Sujet: Bouton des formes spéciales  (Lu 6847 fois)

0 Membres et 1 Invité sur ce sujet

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Bouton des formes spéciales
« le: Février 18, 2013, 10:43:13 pm »
Bonjour,

j'aimerais créer des boutons en forme de losange (enfin des carrés inclinés plus exactement, mais les gens s'imagineront mieux ainsi la forme de mon bouton)

Ducoup faudrait que je tourne avec Rotate mon IntRect, ce qui je crois n'est pas possible... Comment faire alors ? Si quelqu'un a une idée ou même une solution, je suis preneur :)




Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Bouton des formes spéciales
« Réponse #1 le: Février 18, 2013, 11:05:18 pm »
Tu parles de quoi ? Du visuel ou bien de la gestion du clic ? "Rotate mon IntRect", c'est pas très explicite ;)
Laurent Gomila - SFML developer

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Bouton des formes spéciales
« Réponse #2 le: Février 18, 2013, 11:31:42 pm »
Oui j'aurais dû préciser, je parle de la gestion du clic

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Bouton des formes spéciales
« Réponse #3 le: Février 19, 2013, 08:04:39 am »
Donc en gros tu veux tester un point vs un rectangle tourné ? Tel quel, ce n'est pas un test trivial (mais tout de même abordable). Heureusement, tu peux le rendre très simple : un point peut être transformé de n'importe quelle manière, ça reste toujours un point. Donc tu peux te débrouiller pour ramener tout ce petit monde dans un repère où le rectangle sera aligné sur les axes ; et là le test sera immédiat.

En décodé : fais subir à ton rectangle et à ton point la même rotation (avec même centre), ie. celle qui a un angle inverse de celui de ton rectangle, et qui permet donc de le remettre droit. Ensuite tu n'as plus qu'à comparer le point aux min/max du rectangle en X et Y. Ou alors utiliser directement la fonction sf::FloatRect::contains.
Laurent Gomila - SFML developer

 

anything