IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Fonction pour vérifier si un point x;y est dans un tracé


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Fonction pour vérifier si un point x;y est dans un tracé
    Bonjour,

    Je ne suis pas un développeur professionnel. En fait je fais des études de médecine, mais j'ai toujours aimé le développement de programmes. Je fais surtout du web, en html/php/mysql/js etc... et du flash.

    Dans le cadre de mes études, je réalise pour mon mémoire de master une petite applic qui permet de faire défiler des images d'IRM et de détailler certaines zones de ces images. Les IRMs (pour ceux qui ne connaissent pas) sont des coupes du corps (comme un scanner). Ils affichent donc des zones de différentes couleurs. Par exemple, les poumons sont gris, la graisse blanche, les vaisseaux sanguins encore plus blanc etc...
    Je voudrais que mon applic permette de dessiner des zones sur ces images et d'écrire une description de la zone. Les zones sont bien entendu aussi variées que nombreuses et donc, je passe par la réalisation d'un petit éditeur qui me permet de "déssiner" les zones au clic en posant des points qui seront reliés par des droites... L'éditeur est accessible aux administrateurs! Chaque zone est donc en fait un polygone, dont le périmètre est déterminé par un tracé (selon mes termes).
    L'applic est destinée en html/php/javascript avec un brin de connexion asynchrone et peut être l'utilisation de socket php... (pour le contexte).


    Je suis en phase de conception et dans la modélisation de mes classes, je me trouve face à un problème plutôt d'ordre mathématique (snif) et sachant que les maths sont indispensables à de bons programmeurs, je me tente ici! J'ai déjà posé la question sur quelques forums de développement web et sur des forums de mathématiques. Les développeurs qui m'ont répondu ont donné leur langue au chat et les matheux m'ont donné des réponses théorique très obscures pour moi!

    Peut-être que vos lumière seront plus utiles!

    Le problème:

    J'ai une série de coordonnée x;y que je stock dans une table et indexées à une entité que j'appelle "tracés". Les coordonnées sont de type A(x_a;y_a), B(x_b;y_b), C(x_c;y_c) et se succèdent de sorte à représenter les sommets d'un polygone. Ce polygone est mon tracé. Il peut contenir autant de sommets que désiré de sorte à produire des zones aussi grandes/complexes que voulu.

    Je n'ai pas de problème pour dessiner les zones. En fait, je stock les coordonnées de chaque sommet dans ma table, en récupérant les évènement onmousedown en javascript, puis en les envoyant à un script php qui discute avec une base mysql.

    Lors de l'exécution du programme avec les privilèges d'utilisateur simple, l'utilisateur peut cliquer quelque part sur la page, ce qui produit une nouvelle coordonnée x;y que j'appelerai CLIC(x_clic;y_clic). Je veut pouvoir vérifier si cette nouvelle coordonnée se trouve à l'intérieur ou à l'extérieur d'un tracé donné, que je récupère de ma table.

    Il faut savoir que les droites qui composent mon tracé ne peuvent pas se croiser (comme ça je ne m'embête pas à savoir quoi faire si une partie d'un tracé recouvre une autre partie de ce même tracé).

    voilà! Problème qui me harcèle depuis quelques jours (je précise) et plusieurs tentatives déjà, mais aucune satisfaisante!

    Je ne sais pas si ce petit jeu peut peutêtre amuser vos neurones, et soulager les miens!

    Merci en tout cas d'avoir lu et encore plus pour les réponses!

    A+ fred

  2. #2
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut Ton problème peut être traité par plusieurs méthodes
    Ton problème peut être traité par plusieurs méthodes. Il s'agit d'un problème de classification; c'est à dire séparer l'ensemble en zone et être en mesure de dire si un élément appartient à une telle ou telle zone. Il existe déjà des programmes de classification sur le net utilsant les réseaux neuronaux où encore une méthode dite de la logique floue. Fais un petit tour sur le net en tapant "méthodes de classification" et tu auras ton bonheur. Peut être que tu trouveras des pogrammes tout faits ou du moins une méthode à programmer. A titre d'information, ils existent des méthodes toutes simples et donc largement accessibles à quelqu'un qui développe déjà.
    L'immortalité existe, elle s'appelle connaissance

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    salut,

    méthode de classification, cela ne semble pas correspondre à l'usage que je veux en faire, mais je vais aller faire mon petit tour.

    Merci de la réponse en tout cas

  4. #4
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut Il ne s'agit pas de monter un programme
    Il ne s'agit pas de monter un programme de classification mais plutôt utiliser le principe de base; c'est à dire disposez de zones ( avec des frontières) et être en mesure de dire que tel ou tel élément appartient à telle ou telle zone.
    L'immortalité existe, elle s'appelle connaissance

  5. #5
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 886
    Points : 1 526
    Points
    1 526
    Par défaut
    La méthode la plus classique pour déterminer si un point est dans un polygone est de compter les intersections avec la demi-droite partant de ce point: on trace une demi droite à partir du point (horizontale ou verticale, c'est plus facile), on regarde combien il y a d'intersections avec les segments du polygone. S'il y a un nombre impair, le point est à l'intérieur. sinon, il est en dehors. Attention aux cas particuliers (point sur un segment ou un sommet).

  6. #6
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut Visiblement il s'agit de pusieurs polygones
    Visiblement il s'agit de pusieurs polygones et le problème qui me parait le plus difficile est celui de les distinguer les uns des autres. Que se passe t il en cas de plusieurs etoiles par exemple. Personnelement, je pense qu'il faut creuser vers les méthodes utilisés dans les problèmes de classification qui reposent sur le thème de l'identification. C'est loin d'être limpide.
    L'immortalité existe, elle s'appelle connaissance

  7. #7
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    La méthode de la demi-droite peut suffire. Voir post similaire : http://www.developpez.net/forums/d10...s-points-zone/
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Une fonction pour vérifier si une saisie est une date
    Par MasterMbg dans le forum Codes sources à télécharger
    Réponses: 10
    Dernier message: 02/10/2013, 11h18
  2. fonction pour vérifier email et pseudo PDO
    Par astran dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2013, 21h49
  3. [MySQL] Fonction pour vérifier si un membre existe
    Par bassiste dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/03/2008, 13h27
  4. Réponses: 14
    Dernier message: 01/05/2007, 19h25
  5. Réponses: 1
    Dernier message: 26/11/2006, 00h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo