#1 Wed 13 February 2013 18:19
- rolintoucour
- Juste Inscrit !
- Date d'inscription: 13 Feb 2013
- Messages: 9
Trouver le point le plus proche sur une droite
Bonjour,
Je construis une application GPS pour mobile de visite (donc aller de points de passage en points de passage), comme la précision est très mauvaise j'aimerais approximer de la façon suivante :
- à un instant t, j'ai une certaine position avec une information de précision (ex : 20 m)
- je sais de quel point je viens et à quel point je vais, par coordonnées GPS
- je suis donc censé marcher sur cette ligne
- donc si ma position est, à la précision prêt, sur la ligne, je me positionne comme étant sur le point de la droite le plus prêt de ma position réelle
Le tout étant en coordonnées GPS (latitude, longitude, altitude). Connaissez-vous une formule mathématique ou une heuristique qui, grosso modo, remplit la fonction que j'attends ?
Hors ligne
#2 Wed 13 February 2013 19:10
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3179
- Site web
Re: Trouver le point le plus proche sur une droite
bonjour,
Cela s'appelle une équation de trajectoire. Normalement on utilise un gyroscope (il y en a ds les mobiles (?) ) qui donne l'accélération instantanée, on intègre deux fois pour obtenir l'équation de la trajectoire. Les conditions initiales de l'équation différentielle étant la position de départ.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#3 Thu 14 February 2013 05:53
Re: Trouver le point le plus proche sur une droite
Bonjour
le calcul est bcp plus simple en coordonnées planes, ce qui permet de se ramener en géométrie euclidienne. (être en coordonnées planes n est pas un pb avec un GPS).
Il suffit alors de projeter ton point sur la droite reliant tes 2 points initiaux en effectuant un produit scalaire entre le vecteur directeur de ta droite AB et le vecteur reliant le point d origine à ta position AM.
si M' est ton point sur la droite que tu cherches à déterminer tu auras alors la distance AM'= produit scalaire(AM.AB)/(distAB)
http://fr.wikipedia.org/wiki/Produit_sc … _euclidien
--------------------------------------------
Ecri-Topo
La géodésie devient simple...
Ecri-Topo: la geodesie devient un jeu
Hors ligne
#4 Fri 15 February 2013 00:43
- rolintoucour
- Juste Inscrit !
- Date d'inscription: 13 Feb 2013
- Messages: 9
Re: Trouver le point le plus proche sur une droite
Bonsoir,
Merci pour vos réponses. Pour la distance ça me dit effectivement quelque chose (sûrement de niveau bac -2...) et je pense que c'est plutôt facile à trouver. En revanche, de quelle façon peut-on connaître la position du point M' ?
Hors ligne
#5 Fri 15 February 2013 07:26
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3179
- Site web
Re: Trouver le point le plus proche sur une droite
Bonjour,
Un peu de géométrie analytique de seconde (mon fils vient de le faire) :
Equation d'une droite y= a *x + b
Soit B(xb,yb) et C (xc,yc) deux points de la droite :
a= (yc-yb)/(xc-xb)
ensuite on calcul b avec yb= a * xb + b
M' appartient à la droite donc en vérifie l'équation, et BM' = racine((xm'-xb)^2 + (ym'-yb)^2) sachant que le GPS donne le point M à l'instant t il suffit de calculer BM (une droite) et BC (une droite) et de considérer que MM' est perpendiculaire à BC.
(c'est l'explication de la réponse donnée par Romieu).
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#6 Fri 15 February 2013 09:43
Re: Trouver le point le plus proche sur une droite
Pour info en passant, si vous souhaitez écrire des formules mathématiques, il est possible d’utiliser le langage LaTeX : http://georezo.net/forum/viewtopic.php?pid=63883
Hors ligne
#7 Mon 25 February 2013 11:54
- rolintoucour
- Juste Inscrit !
- Date d'inscription: 13 Feb 2013
- Messages: 9
Re: Trouver le point le plus proche sur une droite
Bonjour,
Donc si j'ai bien compris, il faut :
- calculer la distance BM' = vect(BM)*vect(BC)/dist(BC)
- à partir de là on peut trouver ym' exprimé en fonction de xm'
- on calcule l'équation de la droite AB : y = a*x+b
- on dit que notre M' est sur cette droite donc ym' = a*xm' + b
- et là j'arrive à une équation du second degré donc il y a 2 solutions ???
Hors ligne
#8 Mon 25 February 2013 14:01
- Yves Egels
- Participant assidu
- Lieu: Paris
- Date d'inscription: 29 Sep 2011
- Messages: 257
- Site web
Re: Trouver le point le plus proche sur une droite
Ce n'est jamais très bon de passer par l'équation d'une droite (par exemple si elle est Nord-Sud...)
Il vaut mieux raisonner en vecteur :
Si vous allez de M1 vers M2, et que vous cherchez le point le plus proche de N (qui est la projection de N sur M1M2, ses coordonnées sont :
Dernière modification par Yves Egels (Mon 25 February 2013 19:03)
Ingénieur géographe honoraire
École nationale des sciences géographiques
Société française de photogrammétrie et télédétection
Hors ligne
#9 Mon 25 February 2013 14:05
Re: Trouver le point le plus proche sur une droite
bonjour,
Cela s'appelle une équation de trajectoire. Normalement on utilise un gyroscope (il y en a ds les mobiles (?) ) qui donne l'accélération instantanée, on intègre deux fois pour obtenir l'équation de la trajectoire. Les conditions initiales de l'équation différentielle étant la position de départ.
Pour info, petite correction, un gyroscope donne une mesure d'angle.
Le mot accéléromètre fait peut être moins savant, mais c'est lui qui décrit l'outil qui mesure les accélérations
Dernière modification par Jeirhome (Mon 25 February 2013 14:09)
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#10 Mon 25 February 2013 14:23
- rolintoucour
- Juste Inscrit !
- Date d'inscription: 13 Feb 2013
- Messages: 9
Re: Trouver le point le plus proche sur une droite
Merci beaucoup c'est beaucoup plus clair ainsi !
Donc si j'ai bien compris, pour trouver ma projection N', ses coordonnées sont :
x(N) = x(M1) + (x(N) - x(M1)) * (x(M2) - x(M1)) / dist(M1 à M2)
y(N) = pareil sur les y
(désolé c'est vraiment très loin tout ça...) ?
Dernière modification par rolintoucour (Mon 25 February 2013 14:29)
Hors ligne
#11 Mon 25 February 2013 14:44
- Yves Egels
- Participant assidu
- Lieu: Paris
- Date d'inscription: 29 Sep 2011
- Messages: 257
- Site web
Re: Trouver le point le plus proche sur une droite
Non, pas tout à fait. Et en essayant de faire comme le conseille Robin une belle formule sous Latex, j'en ai oublié un bout... (corrigé maintenant dans la réponse précédente)
Il faut calculer un produit scalaire :
Dernière modification par Yves Egels (Mon 25 February 2013 14:47)
Ingénieur géographe honoraire
École nationale des sciences géographiques
Société française de photogrammétrie et télédétection
Hors ligne
#12 Mon 25 February 2013 15:29
- rolintoucour
- Juste Inscrit !
- Date d'inscription: 13 Feb 2013
- Messages: 9
Re: Trouver le point le plus proche sur une droite
Euh c'est OK pour le produit scalaire, par contre comment calculer le M1 dans l'équation après le signe égal ? Dois-je séparer le calcul des X et des Y ? Et est-ce normal qu'il y ait 2 fois le vecteur M1->M2 dans le nominateur ?
Hors ligne
#13 Mon 25 February 2013 15:36
- Yves Egels
- Participant assidu
- Lieu: Paris
- Date d'inscription: 29 Sep 2011
- Messages: 257
- Site web
Re: Trouver le point le plus proche sur une droite
la formule que je vous ai donnée est en 2D (c'est à dire le X et le Y ensemble) Elle marche d'ailleurs aussi quel que soit le nombre de dimensions...
Le quotient du produit scalaire divisé par les distances est un coefficient K
ensuite
Xn = X1 + K*(X2-X1)
Yn = Y1 + K*(Y2-Y1)
Ingénieur géographe honoraire
École nationale des sciences géographiques
Société française de photogrammétrie et télédétection
Hors ligne
#14 Mon 25 February 2013 15:47
- rolintoucour
- Juste Inscrit !
- Date d'inscription: 13 Feb 2013
- Messages: 9
Re: Trouver le point le plus proche sur une droite
Super je vois enfin le bout d'une formule ! Dernière question, comment faire le triple produit scalaire car (M1->N) * (M1->M2) donne un réel et si je refais le produit avec (M1->M2), ce n'est plus un produit scalaire ?
Hors ligne
#15 Mon 25 February 2013 15:53
- Yves Egels
- Participant assidu
- Lieu: Paris
- Date d'inscription: 29 Sep 2011
- Messages: 257
- Site web
Re: Trouver le point le plus proche sur une droite
C'est pas un triple produit scalaire (j'ai fait pas mal de maths, jamais vu!)
Le numérateur est le produit scalaire des deux vecteurs (extrémité - origine)
Le dénominateur est le produit des deux distances
Ingénieur géographe honoraire
École nationale des sciences géographiques
Société française de photogrammétrie et télédétection
Hors ligne
#16 Mon 25 February 2013 16:16
- rolintoucour
- Juste Inscrit !
- Date d'inscription: 13 Feb 2013
- Messages: 9
Re: Trouver le point le plus proche sur une droite
Dans la formule corrigée (sûrement à cause de latex...), il y a 2 fois le vecteur M1->M2... Donc je suppose qu'il ne faut le considérer qu'une seule fois ?
Hors ligne
#17 Mon 25 February 2013 19:06
- Yves Egels
- Participant assidu
- Lieu: Paris
- Date d'inscription: 29 Sep 2011
- Messages: 257
- Site web
Re: Trouver le point le plus proche sur une droite
Il y est même 3 fois...
Le terme en fraction est le quotient du produit scalaire de M1N par M1M2 par le carré de la longueur de M1M2.
On multiplie le vecteur M1M2 par ce terme, et on ajoute les coordonnées de M1.
Ingénieur géographe honoraire
École nationale des sciences géographiques
Société française de photogrammétrie et télédétection
Hors ligne
#18 Thu 28 February 2013 18:01
- rolintoucour
- Juste Inscrit !
- Date d'inscription: 13 Feb 2013
- Messages: 9
Re: Trouver le point le plus proche sur une droite
Ca marche super bien merci beaucoup ! Je vous en dois une si vous avez un problème d'informatique !
Hors ligne
#19 Thu 28 February 2013 18:53
- Yves Egels
- Participant assidu
- Lieu: Paris
- Date d'inscription: 29 Sep 2011
- Messages: 257
- Site web
Re: Trouver le point le plus proche sur une droite
C'est normal, d'habitude, les mathématiques, ça marche plutôt bien...
Pour ce qui est de l'informatique, je me suis lancé dans le développement de logiciels libres de photogrammétrie (sous Lazarus, multiplateforme). Je suis preneur de toute bonne volonté!
Ingénieur géographe honoraire
École nationale des sciences géographiques
Société française de photogrammétrie et télédétection
Hors ligne
#20 Fri 01 March 2013 10:48
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2922
- Site web
Re: Trouver le point le plus proche sur une droite
Un gyroscope donne une mesure d'angle.
Un accéléromètre mesure les accélérations.
rolintoucour ayant lancé une autre discussion sur un autre sujet qui est "Définir des pas en parcourant une droite" ici :
http://georezo.net/forum/viewtopic.php?id=83904
je vais lui répondre dans cet autre fil.
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne