Services : Blog Forum Flux
Formation Trafic : Référencement Liens sponsorisés Affiliation Ecommerce Nom de domaine E-réputation Marketing Mobile Black Hat Outils Referencement
Formation Technique : Performance Web Html Css Sql Curl Asp Dotnet Php Ajax Wordpress Twitter Google Analytics PrestaShop

Forum Oseox
Oseox

Comment recupérer la valeur du code couleur d'un area - Page 2

Forum Référencement et Trafic
Nous sommes le Ven 16 Nov 2018 01:55

Heures au format UTC [ Heure d’été ]




Poster un nouveau sujet Répondre au sujet Aller à la page Précédente  1, 2
Auteur Message
MessagePosté: Lun 6 Avr 2009 10:07 
Professionnel
Professionnel
Avatar de l’utilisateur
Non, ça va être plus compliqué malheureusement, tes polygones peuvent être concaves ou non ?
si non : utilise la méthode qu'on t'a donné,
si oui : il va falloir que tu implémentes un test de collision sur ton polygone (après avoir préalablement testé que le point test n'est pas noir, couleur de ton arête).

vite fait l'algo c# ressemble à ceci (vérifie, ça fait longtemps que j'ai arrêté les maths) tu trouveras des algos un peu partout sur le net (developper.com un site sérieux), il ne te reste qu'à le transformer en PHP

polyX = tableau des x des coins
polyY = des y
x = x du point à tester
y = y du point à tester
Code:
public boolean pointInPolygon(float  polyX[],float  polyY[],float x, float y)
{
   int nbCotes = polyX.length;
   int j = nbCotes-1;
   bool  bNodes=false;

   for (int i=0; i<nbCotes; i++)
   {
      if (polyY[i]<y && polyY[j]>=y ||  polyY[j]<y && polyY[i]>=y)
      {
         if (polyX[i]+(y-polyY[i])/(polyY[j]-polyY[i])*(polyX[j]-polyX[i])<x)
         {
            bNodes=!bNodes;
         }
      }
      j=i;
   }
   return bNodes;
}


Ensuite la meilleure méthode est surement de faire comme t'as dis en prenant un point au pif autour de l'un des points et vérifier ainsi qu'il est dans ton polygone. Personnellement j'aurais tendance à tracer un segment médian et à boucler dessus jusqu'à ce que je trouve un point dedans... les développeurs de jeux pourraient t'en dire plus que moi qui n'ait pas touché à ce genre d'algo depuis la fac ;)

Quoi qu'il en soit, PHP pour faire ça n'est pas très adapté. Le mieux serait quand même que tes polygones soient convexes.


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 6 Avr 2009 16:03 
Avatar de l’utilisateur
Stephane,
Citation:
Personnellement j'aurais tendance à tracer un segment médian et à boucler dessus jusqu'à ce que je trouve un point dedans...

Je crois que j'ai trouvé mon bohnheur PHP Point-in-polygon algorythm.

La métode décrite
Citation:
A common way to tackle the problem is to count how many times a line drawn from the point (in any direction) intersects with the polygon boundary.
ressemblant fortement à ton conseil. Tes souvenirs de Fac ne sont pas si loin ;)


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Mar 7 Avr 2009 07:59 
Professionnel
Professionnel
Avatar de l’utilisateur
Et bien bonne chance ! je pense que tu te serais moins embêté en Flash ! (hitTest ;) )
Cet algo est le même en mieux pour toi, puisqu'il te signale lorsque tu es sur l'arête !


Haut
 Profil Envoyer un e-mail  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 13 messages ]  Aller à la page Précédente  1, 2

Heures au format UTC [ Heure d’été ]


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Abonnez-vous au flux RSS

Blog

Copyright : Moteur, traduction et optimisation
Merci de votre visite sur le forum Oseox