Catographie et représentation de "cercles"
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Catographie et représentation de "cercles"



  1. #1
    Waskol

    Catographie et représentation de "cercles"


    ------

    Bonjour à tous, je suis un poil dans la panade, noyé par des Sinus et des Cosinus à n'en plus finir...

    J'ai réalisé un petit logiciel de cartographie qui me permet de tracer n'importe quelle zone du Globe terrestre à partir des cordonnées géographiques des cotes, des frontières, des fleuves, etc...

    La projection que j'ai utilisé est on ne peu plus simple : on appelle celà une projection "cylindrique equidistante" (voir ici si vous voulez approfondir : http://mathworld.wolfram.com/Cylindr...rojection.html)

    En fait, c'est plus précisemment une projection Equirectangulaire étant donné que ma Latitude de référence est l'équateur (Phi=0).

    Donc, bref et en résumé, voici le système d'équation que j'utilise pour passer de mes (longitudes,latitudes) à des coordonnées euclidiennes (x,y) :
    x=Longitude=Lambda
    y=Latitude=Phi
    Maintenant, imaginez que sur ma carte, je souhaites tracer un cercle (donc en forme de cercle sur ma sphere, mais pas sur ma carte) de rayon 50km autour d'un point (Paris par exemple, que l'on représentera par un point ayant pour Longitude et Latitude (Lamda1,Phi1), donc sur ma carte (x1,y1)).
    Pour avoi la distance sur une sphère entre deux points (Lamda1,Phi1) et (Lamda2,Phi2) on utilise les distances de deux points sur un "Grand cercle) de la sphère (l'Equateur et le méridiens sont des grands cercles) :
    D'après l'équation (5) de cette page (attention ils ont représenté la latitude par la lettre grecque Delta cette fois ci)
    http://mathworld.wolfram.com/GreatCircle.html

    ...j'obtiens comme équation pour mon "cercle" de centre (x1,y1) et de rayon (r) sur ma carte :

    les inconnues :
    x et y

    les constantes :
    r=50 km
    a=6378 km (rayon terrestre)

    C=cos(r/a)
    A=cos(Phi1)
    B=Sin(Phi1)

    et la relation :
    A.cos(y).cos(x1-x)+B.sin(y)=C
    x, y, x1 et y1 sont en degrés
    Mon problème est que je voudrais tracer ma courbe correspondant à mon cercle, non pas avec y en fonction de x (y=f(x), ni avec x en fonction de y (x=f(y)) qui m'obligerais à déterminer les bornes inférieures et supérieures de mes fonctions, mais plutot avec une fonction paramétrique du genre :

    x=R.cos(alpha)+x1
    y=R.sin(alpha)+y1
    où R est une fonction de x1,y1, A, B et C, et alpha avec alpha compris entre 0 et 2.Pi
    Pour avoir y=f(x) ou x=f(y), pas de problèmes, mais à tracer sur la carte c'est galère.
    pour le système d'équations paramétrées, là, je sèche. (et ce serait pourtant tellement plus simple à coder)

    En fait, tou mon problème consiste à isoler R dans l'équation
    A.cos(y).cos(x1-x)+B.sin(y)=C, ou on a remplacé x et y par leur formes paramétrées respective.

    Je n'y arrive pas.

    Y aurait-il un mathématcien dans la salle qui pourrais m'aider siouplé ?

    Merci par avance.

    -----

  2. #2
    Waskol

    Re : Catographie et représentation de "cercles"

    Etat des lieux :
    Lorsque le Pôle est à l'intérieur du cercle ou lorsqu'on s'approche des Pôles, la courbe à une forme bizarre et c'est normal
    La projection d'un cercle de la sphère ne donnera jamais un cercle. Le cercle projeté sur la carte devrait en toute logique s'élargir dans sa partie la plus près du pôle (une forme de poire on va dire). Quand le Pôle est dans le cercle, alors on aura carrément une courbe partant du bord gauche de la carte et allant vers le bord droit.

    Quand le pôle est sur le cercle, il faudra sans doute que je fasse attention, car les 2 points de la sphère que sont les pôles sont transformés en droites lors de la projection (bords haut et bas du planisphère).

    Sinon, pour l'instant, j'en suis là :
    deux équations :
    x=x1+ArcCos( (C-B.sin(y)/(A.cos(y) )
    et
    x=x1-ArcCos( (C-B.sin(y)/(A.cos(y) )

    (Supposant que ArcCos, le cosinus inverse, renvoie des degrés compris entre 0 et 180)

    avec :
    y1-r/a<y<y1+r/a
    et y diff&#233;rent de 90&#176; et -90&#176;
    et |C-sin(y)|<=|A.cos(y)|
    Pour l'instant je fais avec &#231;a, mais il est tout de m&#234;me &#233;tonnant que l'on ne puisse pas obtenir une courbe param&#233;tr&#233;e en fonction d'un rayon et d'un angle...
    Dernière modification par Waskol ; 01/02/2006 à 11h29.

  3. #3
    invite3a5f9129

    Re : Catographie et représentation de "cercles"

    Le plus simple revient à tracer les projections d'un certain nombre de points appartenant à ton cercle initial, puis à interpoler une courbe passant par eux...
    Mais le mieux du mieux serait que tu te penches sur les problèmes (nombreaux et difficiles) liés aux projection. Le lien ci-dessous contient des cours donnés à l'Ecole Nationale des Sciences Géographiques (école de l'Institut Géographique National) :
    http://www.ensg.ign.fr/FAD/Supports_de_Cours.html
    Bon courage...

  4. #4
    Waskol

    Re : Catographie et représentation de "cercles"

    Citation Envoyé par indianajo
    Le plus simple revient à tracer les projections d'un certain nombre de points appartenant à ton cercle initial, puis à interpoler une courbe passant par eux...
    Je pense que c'est ce que je vais faire...
    Citation Envoyé par indianajo
    Mais le mieux du mieux serait que tu te penches sur les problèmes (nombreaux et difficiles) liés aux projection. Le lien ci-dessous contient des cours donnés à l'Ecole Nationale des Sciences Géographiques (école de l'Institut Géographique National) :
    http://www.ensg.ign.fr/FAD/Supports_de_Cours.html
    Bon courage...
    Sans être un spécialiste, j'arrive tout de même à réaliser les projections de Bonne, Mercantor, etc... sans trop de problèmes. Les cours de l'IGN vont trop loin par rapport à mon besoin.
    En tout cas merci beaucoup.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. La science du "Comment?" peut-elle dire "POURQUOI?" au moins une fois?
    Par invite33b26c8f dans le forum Epistémologie et Logique (archives)
    Réponses: 83
    Dernier message: 12/07/2017, 22h12