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 :

Trouver les deux points les plus éloignés


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 141
    Par défaut Trouver les deux points les plus éloignés
    Bonjour à tous,

    J'ai réalisé un petit soft de visualisation de trace gps enregistrées lors de vols en parapente. Ils existe divers challenge où pour apprécier la valeur d'un vol on note le nombre de kms parcourus, 1 km = 1 point. Pour une distance dite "libre" c'est facile on mesure la distance entre les deux points les plus éloignés.

    Donc voici ma première question : dans un nuage de points dont les coordonnées sont latitude et longitude, comment déterminer les deux points les plus éloignés.

    J'avoue ne pas avoir beaucoup d'idées. J'imagine de calculer la distance du point 1 à tous les autres points. Je garde la plus grande, et je recommence avec le point 2 par rapport à à tous les autres points et ainsi de suite...Et ensuite je compare les valeurs obtenues ?

    Je parle de première question, car cela peut devenir nettement plus compliqué, un parcours en triangle par exemple compte beaucoup plus qu'un parcours simple. Le nombre de points est majoré de 20%.

    Là je vois pas trop comment procéder ... Pourtant cela se fait, il existe quelques logiciels qui font le calcul des diverses combinaisons possibles, pour permettre au pilote de déclarer son vol avec le maximum de points. Sans rentrer dans les détails, pour qu'un vol puisse être considéré comme autre chose qu'une simple distance, il faut qu'il y ait moins de 3 km entre le point de départ et le point d'arrivée. Calculer cela, au moins c'est à ma portée

    Merci d'avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    il y a plusieurs solutions...

    A priori ton GPS envoie des infos tous les x (secondes etc..).

    Tu peux donc sommer toutes les distances 2 a 2 durant la duree du vol. Cela donnera (a peu pres) la distance totale parcourue.

    Tu peux aussi calculer le min/max des latitudes/longitudes.

    Ca te donne une boite dans laquelle le vol est compris(une premiere approxcimation du probleme no 1)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 141
    Par défaut
    Merci Souviron34... je me suis mal exprimé, le calcul se fait à posteriori et non pas en analysant des trames en temps réel. Il s'agit d'une analyse de la trace qui se fait sur un PC après récupération de la trace.

    Je travaille sur une liste de points. Je suis en C# donc c'est une liste mais dans d' autres langages ce serait un array.

    La distance totale parcourue je la calcule déjà.

    Je vais explorer la piste de la boite... donc d'un polygone...

    Cze qui me chagrine vraiment c'est l'histoire des angles pour le triangle.

  4. #4
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Et en déterminant une courbe approximante sur le nuage ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 141
    Par défaut
    Merci Tommy... Pourrais tu m'expliquer ce que tu entends par courbe approximante ?

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Tu peux simplement sommer sur le contour convexe de ton nuage ... par contre si fai des zig-zags l'approximation est moins bonne ...

    Si tu ne disposes pas d'une information sur l'ordre d'acquisition des tes points, je ne vois pas comment procéder autrement .


    ++

  7. #7
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Tu peux donc sommer toutes les distances 2 a 2 durant la duree du vol. Cela donnera (a peu pres) la distance totale parcourue.
    si on prend (Pi)i=1..N l'ensemble de tes point alors :

    D = SOMMEi=1..N-1[d(Pi,Pi+1)]
    avec, d(X,Y) la distance entre X , Y.
    Bien sur une opération de conversion est nécessaire pour passer à des mètres.

  8. #8
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    La terre n'est pas plate ...
    Mais quand on se restreint à un petit parcours on peut supposer qu'elle l'est.
    Supposons qu'on se déplace sur le même méridien d'un angle de d1 degré de latitude.
    L'angle en radians est donc alpha=(d1/180)*pi.
    La distance parcourue est donc R*alpha
    Supposons maintenant qu'on se déplace sur un même parallèle d'un angle de d2 degré de longitude.
    Pour les mêmes raisons la distance parcourue est R*beta où beta =(d2/180)*pi
    Confondons localement la sphère terrestre avec son plan tangent la distance parcourue pour une variation de d1 degré de latitude et d2 degré de longitude est donc par Pythagore:
    R*pi/180*sqrt(d1*d1+d2*d2).
    Si tu disposes de n points P1, P2, ...,Pn
    Tu peux remplir une matrice carrée n*n où le coefficient de la ligne i et de la colonne j correspond à la distance de Pi à Pj.
    En fait le triangle supérieur suffit puisque la matrice est symétrique.
    Ensuite, tu cherche le maximum des coefficients par un balayage du triangle supérieur et tu as la valeur cherchée.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    je ne crois pas que c'est ce dont parlait mr_samurai mais plutot de la transformation latitude->m ou longitude->m
    (1 degre a peu pres egal a 100 kms (lat) et 110 kms (lon))

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 141
    Par défaut
    Je crois qu'il faut que j'explore la piste donnée par Zavonen... Grand merci Zavonen d'avoir pris le temps de faire une réponse didactique. J'ai un bout de C qui, me semble t il, va exactement dans ce sens. Je dis me semble t il car cela a été fait et commenté par un allemand !!! Comme en plus je capte pas tout en C. Mais j' ai bien vu qu'il construisait une matrice.

    En ce qui concerne les distances et les angles... cela ne me pose aucun problème, j'ai les formules qui me permettent de faire directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = Distance(Lat1,long1,Lat2,Long2
    et de la même manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c = Cap(Lat1,long1,Lat2,Long2)
    Donc pour explorer la distance libre, cela devrait gazer.

    Mais pour le triangle, j'ai l'impression que cela va être une autre histoire, il va falloir que je m'occupe des angles... Pi en plus, je ne vous ai pas tout dit il existe encore d'autres possibilités dont une est assez utilisée c'est le quadrilatère :

    La règle est simple il faut qu'il y ait moins de trois kilomètres entre BD et BA et que l'on arrive à caser un polygone convexe à l'intérieur...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/02/2015, 08h00
  2. Le plus court chemin entre deux points les plus éloignés
    Par takesrit dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 30/05/2011, 18h39
  3. Déterminer les deux points les plus éloignés dans un nuage de points
    Par moooona dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 03/02/2011, 08h49
  4. recherche des deux points les plus éloignés
    Par moooona dans le forum API graphiques
    Réponses: 19
    Dernier message: 01/02/2011, 19h35

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