Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#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: 3173
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

romieu
Participant occasionnel
Lieu: lyon
Date d'inscription: 3 May 2007
Messages: 16
Site web

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: 3173
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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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: 256
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 :
N=M1+\frac{\vec{M_1N} . \vec{M_1M_2}}{\|\vec{M_1M_2}\|.\|\vec{M_1M_2}\|}.\vec{M_1M_2}

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

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: Trouver le point le plus proche sur une droite

ChristopheV a écrit:

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 big_smile

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: 256
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 :
\vec U.\vec V = X_U*X_V+Y_U*Y_V

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: 256
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: 256
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: 256
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: 256
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... wink
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: 2916
Site web

Re: Trouver le point le plus proche sur une droite

Jeirhome a écrit:

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

 

Pied de page des forums

Powered by FluxBB