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

Auteur Sujet: Polygone quelconque  (Lu 3795 fois)

0 Membres et 1 Invité sur ce sujet

aquemy

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
    • E-mail
Polygone quelconque
« le: Mars 29, 2012, 06:37:26 pm »
Bonsoir,

Je cherche un moyen de dessiner un polygone quelconque.
J'ai donc essayé avec un tableau de sf::LineStrip ce qui a plutôt bien fonctionné, en s'assurant que le dernier point du tableau est égal au premier. Seulement, je n'arrive pas à remplir l'intérieur de ce polygone d'une couleur quelconque.

Du coup, j'ai essayé avec la primitive sf::Quads qui elle m'a bien rempli mon polygone mais, qui semble être limitée aux quadrilatères (en même temps, au moins ça colle à son nom  :P).

J'ai vraiment besoin de remplir mon polygone pour ensuite générer facilement des tests d'inclusion par masque de couleurs, d'où ma demande : existe-il un moyen de générer un polygone plein facilement ?

Merci beaucoup.

aquemy

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
    • E-mail
Re : Polygone quelconque
« Réponse #1 le: Mars 29, 2012, 06:40:25 pm »
Je me réponds à moi même (c'est toujours au moment où l'on poste que l'on trouve la solution  :-X).

La classe sf::Polygone se trouve désormais nommée : sf::ConvexShape et est bien cachée dans la documentation. :D

http://www.sfml-dev.org/documentation/2.0/classsf_1_1ConvexShape.php

Désolé pour ce message qui ne sert pas à grand chose.
« Modifié: Mars 29, 2012, 06:42:31 pm par aquemy »

aquemy

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
    • E-mail
Re : Polygone quelconque
« Réponse #2 le: Mars 29, 2012, 07:53:00 pm »
Rebonsoir,

Finalement, j'ai tout de même un soucis.
Je pensais qu'il était possible de récupérer la couleur d'un pixel à l'intérieur du polygone, mais je n'ai rien vu de tel dans la documentation.

Comment pourrais-je récupérer la couleur d'un pixel à l'intérieur d'une forme quelconque ?

Merci !

EDIT : J'explique un peu mieux mon problème.
En fait, je souhaiterais créer des polygones quelconque, générés aléatoirement donc. Ensuite, je cherche à les encadrer par le rectangle à l'air la plus petite. Aucun soucis jusque là.
Ensuite, il faut que je répartisse des points suivant une distribution quelconque sur mon polygone mais pour celà, il me faut pouvoir tester l'inclusion d'un point dans mon polygone et à partir du moment où le polygone est quelconque, j'ai pensé que la seule manière de faire est de tester la couleur.
« Modifié: Mars 29, 2012, 08:00:09 pm par aquemy »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Polygone quelconque
« Réponse #3 le: Mars 29, 2012, 08:43:50 pm »
Il y a au moins deux algorithmes assez simples pour tester un point dans un polygone convexe, tu devrais trouver ton bonheur avec Google.
Laurent Gomila - SFML developer

aquemy

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
    • E-mail
Re : Re : Polygone quelconque
« Réponse #4 le: Mars 31, 2012, 03:34:54 pm »
Il y a au moins deux algorithmes assez simples pour tester un point dans un polygone convexe, tu devrais trouver ton bonheur avec Google.
En réalité, pas besoin que le polygone soit convexe pour cela. Cependant, ces algorithmes sont assez calculatoires, c'est pour cela que je voulais savoir s'il existait un moyen de connaitre la couleur d'un pixel de l'écran, où qu'il soit.

Apparemment la seule chose que j'ai vu à ce propos, c'est la récupération d'un pixel d'une sf::Image. :-\

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Polygone quelconque
« Réponse #5 le: Mars 31, 2012, 07:02:44 pm »
Citer
En réalité, pas besoin que le polygone soit convexe pour cela.
Pour l'un des deux (le plus simple), si.

Citer
Cependant, ces algorithmes sont assez calculatoires
Ils sont très simples, et largement plus efficaces que de récupérer la couleur d'un pixel affiché. Parce que pour lire un pixel, il faut faire transiter l'information dans le sens inverse de ce qui est prévu (de la carte graphique vers la mémoire centrale), et ça c'est toujours très lent.
Laurent Gomila - SFML developer