Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 29-07-2016 01:37:04

jniac
Invité

Géométrie à la surface de la Terre

Bonjour,

Je cherche à réaliser des opérations géométrique dans un espace à 2 dimensions sphérique (la Terre par exemple).
On peut trouver sur internet assez facilement des formules pour calculer la distance d'un point à un autre.
Mais dès qu'il s'agit de réaliser des opérations plus compliquées, par exemple trouver les intersections entre 2 grands cercle, ou bien déterminer si un point appartient à la surface d'un polygone les ressources se font nettement plus rare...

Peut-on facilement déterminer si un point de la sphère appartient au polygon P ?
Le polygon P est défini par un certain nombre de sommet reliés entre eux par des arcs de grand cercle.

Orthodromes.jpg

#2 29-07-2016 01:41:58

jniac
Invité

Re : Géométrie à la surface de la Terre

Plus généralement,

Comment définir un grand cercle ?
Comment calculer les intersections de 2 grands cercles ?

Merci par avance de votre attention.

Joseph

#3 29-07-2016 12:56:32

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Géométrie à la surface de la Terre

Salut,

très, très beau sujet qui va en régaler plus d'un.
Question : sommes nous dans le monde virtuel des matheux (la terre est vraiment ronde), ou bien dans le monde réel ? Ta réponse va conditionner le nombre d'intervenants, je pense.


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#4 29-07-2016 12:58:40

Dlzlogic
Banni(e)
Inscription : 25-04-2016
Messages : 461

Re : Géométrie à la surface de la Terre

Bonjour,
Justement, on a inventé les projections pour se simplifier la vie.
Ceci dit, on peut faire tous les calculs sur la sphère comme on sait les faire en plan. Il existe la trigonométrie sphérique qui s'utilise à peu près de la même façon que la trigonométrie plane.
Cependant, il y a un problème supplémentaire, c'est que la terre n'est pas une sphère, mais un ellipsoïde de révolution.
Donnez un peu plus de détails sur ce que vous voulez faire et on pourra probablement vous aider. A titre d'exemple, le calcul de la distance entre deux points sur la terre (supérieur à 200 km) est sensiblement plus difficile que vous semblez l'imaginer.
Il me semble me souvenir qu'une question très similaire a été posée il y a quelques temps, je ne sais plus où.

Hors ligne

#5 30-07-2016 11:02:41

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 985

Re : Géométrie à la surface de la Terre

Salut,

Pour avoir une idée de la Géométrie sphérique un lien vers une BD : https://www.savoir-sans-frontieres.com/ … tricon.htm

Oui, c'est une BD, mais elle a été réalisée par quelqu'un qui n'est pas un "minus habens" : au moment où il l'a écrite (>30 ans)  Docteur es Sciences, Astrophysicien, chargé de recherches au CNRS, Prof de micro-informatique et des Beaux-Arts...
Il dessine et est l'auteur des textes et du scenario....
Si tu vas voir le sire de "Savoir sans Frontières", tu constateras qu'il a fait beaucoup de BD de "vulgarisation"...
Citation :
Le but de Savoir sans Frontières est de permettre aux internautes de comprendre le maximum de choses concernant la science, c'est à dire des faits scientifiques établis, fiables.

Toutes ces BD sont maintenant librement (et gratuitement) téléchargeables (dans le temps, j'en avais acheté certaines : elles étaient en vente dans le commerce !).

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#6 01-08-2016 02:29:05

jniiiac
Invité

Re : Géométrie à la surface de la Terre

Merci pour vos premières réponses.
Je vais lire la BD avec grand plaisir je pense.

Avertissement : Si j'ai une sensibilité pour les mathématiques, en revanche je ne suis pas mathématicien, mais alors pas du tout, à mon grand dam des pages commes https://fr.wikipedia.org/wiki/Quaternio … l%27espace me sont impénétrables :'(

Je travaille actuellement au développement d'un petit prototype d'application utilisant la géolocalisation des téléphones. J'ai besoin pour ce faire de détecter le moment où un utilisateur pénètre un espace, un polygone défini par un certain nombre de sommet (latitude / longitude). Si j'ai les connaissance nécessaire pour détecter l'inclusion d'un point dans un polygone du plan euclidien, sur une sphère je suis paumé.

Je vous présente les outils mathématiques dont je me sers dans le plan euclidien et que j'aimerais transposer (si c'est possible !) à la surface d'une sphère.

Second avertissement : Ma qualité d'amateur m'amène à faire des approximations en mathématiques, je vais utiliser des concepts triviaux comme "gauche" et "droite" ne sachant pas comment mieux qualifier ces considérations spatiales.

Dans le plan euclidien, en programmation, j'ai pris l'habitude de travailler avec un objet "Line" que je défini par 2 paires de coordonnées, un point et un vecteur.
Line(P, V)
Cette définition est pour moi plus intéressante que l'équation ax + by + c = 0 car elle a une résonance "physique" (un point, un vecteur), ainsi ce même objet me permet calculer des intersections (application mathématique) mais aussi de simuler de petits comportements physique (un objet localisé en p se déplaçant avec sa vitesse propre v, et s'orientant selon que sa cible soit devant, derrière, à gauche, à droite de lui).

GeomEuclidienne.jpg

En usant du déterminant de 2 vecteur je peux facilement savoir si un point du plan se situe à "gauche" ou à "droite" de ma droite D (det(V, PM)), en divisant ce même déterminant je peux connaître la distance MM' (det(V, PM) = ||V||.||PM||.sin   => ||PM||.sin = det(V, PM) / ||V||, or ||PM||.sin = ||MM'||).

La coordonnée de M' (proj orho de M sur D) se calcule assez facilement, toujours en utilisant des déterminants.
M' vérifie P + c.V, or le coefficient c peut être calculé de la manière suivante (je n'ai plus mes feuilles sous la main, je ne peux plus vous offir le développement) :
c = det(V, PM) / det(V, Vi) où V est le vecteur V multiplié par i, Vi(-vy, vx) soit
c = det(V, PM) / (vx * vx + vy * vy)
Ce coefficient c est très pratique car il me permet de savoir
si M' est confondu avec P (c = 0),
si M' appartient au segment [P, P+V] (c >= 0 & c <= 1)
etc.

D'une façon similaire je peux trouver l'intersection de 2 droites, L(P, V) et L'(P', V').
I = P + c.V = P' + c'.V'
=>
c = det(V', PP') / det(V, V')
c' = det(V, PP') / det (V, V')
pour limiter à l'intersection de deux segment [P, P+V], [P', P'+V'] il suffit alors de ne s'intéresser qu'aux cas où 0 <= c <= 1 & 0 <= c' <= 1
etc.

C'est toujours avec cet outil Line que je détermine si un point M du plan appartient au polygon (convexe) P :
GeomEuclidienne-02.jpg

J'ai aujourd'hui l'intuition qu'il pouvoir en aller de même dans l'espace sphérique.
Puisque toute position sphérique peut-être définie par 2 coordonnées (theta, phi), l'espace sphérique semble s'apparenter à un espace à 2 dimensions qui "boucle", la "seule" subtilité viendrait donc du calcul d'une distance qui doit toujours se faire en vérifiant qu'il s'agit bien du "plus court chemin".

Par analogie :
Le point P(x, y) du plan devient P(theta, phi) du plan sphérique.
Les lignes Line(P, V) doivent devenir des grands cercles de S (mais comment définir ces grands cercles ? par quels nombres ? P(theta, phi), V(theta, phi) ???).

Mon intuition se trompe-t-elle ?
Je suis pour l'instant bien loin de pouvoir lui donner raison, mes premières tentatives de bidouillages mathématico-empiriques ne sont pas très concluant.

Je résume mes interrogations par images:

SphericGeometry-07.jpg
Comment savoir si M se situe à "droite" ou à "gauche" du grand cercle orienté C ?



SphericGeometry-04.jpg
Comment connaitre C3, grand cercle passant par C2.P et M ?
Comment trouver les intersections de 2 grands cercles C2 et C4 ?



SphericGeometry-05.jpg
Comment savoir si M(theta, phi) appartient au polygone rouge (dont les sommets sont bien sûr connus).


Merci, par avance de votre attention,
Joseph

#7 01-08-2016 02:56:10

jniiiac
Invité

Re : Géométrie à la surface de la Terre

PS : Nous sommes dans l'univers des matheux, la terre est ronde, je ne crois pas pouvoir faire autrement, les ressources sur lesquelles j'ai pu tomber jusqu'ici ont toujours fait l'hypothèse d'une sphère parfaite de 6371km de rayon.
Non ce qui m'intéresse fondamentalement c'est de savoir déterminer si M issues du faisceau jaune appartient au cône rouge ou non.
SphericGeometry-08.jpg

#8 01-08-2016 12:23:38

Dlzlogic
Banni(e)
Inscription : 25-04-2016
Messages : 461

Re : Géométrie à la surface de la Terre

Bonjour Joseph,
Vos dessins sont très jolis et j'ai admiré vos explications. Cependant je vous mets un garde sur un point, si votre polygone n'est pas convexe, vous risquez des problèmes.
Je ne répondrai que sur la question d'origine : sphéricité de la terre.
Je suppose que les bornes (sommets de polygones) sont dans un espace assez limité, quelques dizaines de km et que la précision des différentes valeurs est de l'ordre du mètre. Si c'est le cas, vous pouvez, sans aucun risque utiliser les coordonnées géographiques comme des coordonnées planes. Vous aurez, certes, une déformation des Y par rapport aux X. Cela peut-être gênant si vous devez produire des distances, vous pouvez aussi corriger cela avec la latitude.

Hors ligne

#9 03-08-2016 13:14:01

jniiiac
Invité

Re : Géométrie à la surface de la Terre

@Yoshi
J'ai bcp apprécié la bande dessinée. Son ton et bien sûr le propos qui m'a aidé à me faire une meilleure idée de la géométrie sphérique (notamment à travers l'exemple du triangle à trois angle plat confondu avec une hémisphère). Du coup j'ai pu avancer un peu dans le développement d'un objet GreatCircle.

@Dlzlogic
En effet, je pense que de rester dans le plan aurait pu suffire, surtout à l'échelle prévue au sein de l'application, mais je dois avoir un coté idéaliste, l'idée que les pôles me soient inaccessibles me perturbait. En travaillant dans R3 et des points de S définis par des vecteurs unitaire (x,y,z) j'ai pu approcher une définition fonctionnelle d'un polygone dans S.

Je dis "approcher" car visiblement cela ne fonctionne pas tout à fait, j'ai du me planter quelque part, de pas grand chose.
Voici une application interactive de mon problème (WebGL + ThreeJS) :
http://hipoly.fr/tmp/tmp/geom/3d/index-threejs.html
(possibilité de tourner la caméra, de déplacer les points, de déformer le polygone)

La détection de l'inclusion d'un point P par SPolygon fonctionne assez bien, par contre la détermination de la "convexité" de SPolygon reste insatisfaisante. Pour déterminer la "convexité", à la manière de ce que je faisais dans le plan je parcours les arcs du polygone selon un sens (direct ou indirect) et je m'assure que les déterminants entre les différents arcs (qui peuvent être vus comme des plans passant par l'origine, c'est donc le vecteur orthogonal qui suffit à déterminer le plan, le vecteur orthogonal est représenté par les petits traits qui dépassent de S) soient tous du même signe.

Cela ne marche pas tout à fait car pour des cas où SPolygon est grand (plus de 90° d'ouverture) il est des fois où cette méthode affirme que le polygone est concave alors qu'il apparaît convexe, alors que le vecteur orthogonaux, dont on peut suivre la course à mesure que l'on modifie la position d'un sommet, ne se sont pas encore "croisés".

C'est frustrant.

lscreen01.png

#10 03-08-2016 14:27:46

Dlzlogic
Banni(e)
Inscription : 25-04-2016
Messages : 461

Re : Géométrie à la surface de la Terre

Bonjour,
Votre simulation est très jolie.
Pour le reste, oui, je compatis, c'est frustrant.

Hors ligne

#11 03-08-2016 15:53:38

jniiiac
Invité

Re : Géométrie à la surface de la Terre

Merci !

Bon j'ai pu corriger mon problème. Il n'y a plus d'erreur.

#12 03-08-2016 16:37:00

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 985

Re : Géométrie à la surface de la Terre

Re,

Parfait, ça m'évitera de creuser l'idée qui m'était venue de jouer avec les longitudes/latitudes...
Je suis content aussi que tu aies apprécié ta lecture et qu'elle t'ait apporté quelque chose. L'auteur a un vrai talent de simplification...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Pied de page des forums