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

Mathématiques Discussion :

Savoir si un point appartient à un champ


Sujet :

Mathématiques

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 16
    Points
    16
    Par défaut Savoir si un point appartient à un champ
    Bonsoir et bonne année a vous tous
    j'aimerais bien savoir comment faire un test sur un point (clic souris) si il apartient ou non à un segment AB ou si il est entre les deux segment qui entour le segment AB

    noté que j'ai les cordonnées de A et B



    en rouge le point demandé
    merci

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    On peut considérer que c'est équivalent a chercher si un point est dans un rectangle... sujet qui a déjà été débattu dans ce forum.

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    pouvez me donner le lien svp !!
    je pense que c'est équivalent puisque j'ai les cordonnées des segments qui entourent le segment AB

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par lbrnoss Voir le message
    pouvez me donner le lien svp !!
    je pense que c'est équivalent puisque j'ai les cordonnées des segments qui entourent le segment AB
    Et bien si tu tapes "point dans un rectangle" dans la zone de recherche personnalisée google (tout en haut de la page), puis que tu cliques sur "Go!" tu arrives là :

    http://www.developpez.net/forums/d41...rectangle-non/

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    merçi pour votre effort

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    pardonner moi mr pseudocode mais j'arrive pas à comprendre ce programme !!

    est ce que left , right,top,bottom sont des fonctions ou quoi ?


    // left = rectangle corner with lowest "x"
    // right = rectangle corner with highest "x"
    // top = rectangle corner with highest "y"
    // bottom = rectangle corner with lowest "y"

    boolean isInsideOrientedRectangle(int x, int y) {

    // outside the bounding box ?
    if (x<left.x) return false;
    if (x>right.x) return false;
    if (y>top.y) return false;
    if (y<bottom.y) return false;

    // identify sub-regions of the bounding box and test determinant sign
    if (x<=bottom.x && y<=left.y)
    if ( (y-bottom.y)*(bottom.x-left.x) < (left.y-bottom.y)*(bottom.x-x) ) return false;

    if (x>=bottom.x && y<=right.y)
    if ( (y-bottom.y)*(right.x-bottom.x) < (right.y-bottom.y)*(x-bottom.x) ) return false;

    if (x>=top.x && y>=right.y)
    if ( (top.y-y)*(right.x-top.x) < (top.y-right.y)*(x-top.x) ) return false;

    if (x<=top.x && y>=left.y)
    if ( (top.y-y)*(top.x-left.x) < (top.y-left.y)*(top.x-x) ) return false;

    return true;
    }

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par lbrnoss Voir le message
    pardonner moi mr pseudocode mais j'arrive pas à comprendre ce programme !!

    est ce que left , right,top,bottom sont des fonctions ou quoi ?
    Ce sont des points 2D, donc avec 2 coordonnées : "x" et "y"

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    je pense que ça marche pas

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par lbrnoss Voir le message
    je pense que ça marche pas
    Tu es sur d'avoir correctement identifié les 4 points left/right/top/bottom ?

  10. #10
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Tu es sur d'avoir correctement identifié les 4 points left/right/top/bottom ?
    oui et j'ai révisé plusieur fois !!!

  11. #11
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par lbrnoss Voir le message
    oui et j'ai révisé plusieur fois !!!
    Si tu peux, montre nous le code complet (identification des 4 coins et algo inside/outside)

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    J'ai le même problème, c'est à dire que j'ai les coordonnées x et y de 2 points A et B et je voudrais savoir si un point C est dans le rectangle de longueur AB et de largeur 5 km.
    Le problème est que je n'arrive pas à identifier les 4 coins du rectangle.
    Vous avez déjà répondu à la suite.

    Merci d'avance

  13. #13
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par e1pautre Voir le message
    Bonjour,
    J'ai le même problème, c'est à dire que j'ai les coordonnées x et y de 2 points A et B et je voudrais savoir si un point C est dans le rectangle de longueur AB et de largeur 5 km.
    Le problème est que je n'arrive pas à identifier les 4 coins du rectangle.
    Vous avez déjà répondu à la suite.
    Si ton rectangle n'était pas penché, les coins seraient au-dessus/au-dessous de A et B.

    +-----------+
    |           |
    A           B
    |           |
    +-----------+
    C'est a dire qu'il faudrait ajouter/retrancher le déplacement (0,d) aux deux points, où 'd' est la demi hauteur du rectangle.

    Comme le rectangle est penché, il faut au préalable faire une rotation de ce déplacement: (d*sin(theta), d*cos(theta)).

    Un peu de trigo nous permet de calculer cos(theta) et sin(theta) depuis les coordonnées de A et B:

    cos(theta) = AB.x / |AB| = (B.x-A.x) / racine ( (B.x-A.x)² + (B.y-A.y)² )
    sin(theta) = AB.y / |AB| = (B.y-A.y) / racine ( (B.x-A.x)² + (B.y-A.y)² )

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup de votre réponse,
    Je vais essayer de l'appliquer, je reviendrai poster pour vous dire si j'ai réussi.

    Dans la solution donnée au dessus pour la présence ou non d'un point dans un rectangle, à quoi correspond left.y?
    Est-ce que c'est la coordonnée y du point dont x est le plus petit?
    idem pour right.y top.x et bottom.x

    Merci d'avance

  15. #15
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par e1pautre Voir le message
    Dans la solution donnée au dessus pour la présence ou non d'un point dans un rectangle, à quoi correspond left.y?
    Est-ce que c'est la coordonnée y du point dont x est le plus petit?
    oui, c'est ca.

    idem pour right.y top.x et bottom.x
    c'est le meme principe, oui.

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    merci beaucoup ça fonctionne

  17. #17
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par e1pautre Voir le message
    merci beaucoup ça fonctionne
    C'est beau les maths.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    C'est sur!
    J'ai toujours eu des lacunes en trigonométrie.
    En tout cas encore merci pour ta réactivité.

Discussions similaires

  1. [3D] Comment savoir si un point est dans mon champ de vision
    Par patmaba dans le forum Développement 2D, 3D et Jeux
    Réponses: 10
    Dernier message: 04/11/2018, 13h20
  2. Savoir si un point est dans un polygone.
    Par poly128 dans le forum Langage
    Réponses: 8
    Dernier message: 18/11/2008, 09h34
  3. Savoir si un objet appartient a tel ou tel classe.
    Par zulot dans le forum Langage
    Réponses: 7
    Dernier message: 21/04/2006, 18h29
  4. Savoir si un point est inclus dans un polygone quelconque
    Par SuperBIBI dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 02/08/2005, 19h02
  5. savoir si 1 point est a l'intérieur d'un cercle ...
    Par skarladevobsy dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/05/2002, 18h14

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