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 :

Calcul surface polygone/cercle


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé Avatar de wwave
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Par défaut Calcul surface polygone/cercle
    Bonjour à tous !!

    Ma problématique est la suivante : calcul de l’aire en km² d’un polygone ou d’un cercle dont les coordonnées sont en degrés (sommets pour le polygone, centre et 1 point du cercle pour le cercle !)


    Pour le polygone j’ai un algo qui me donne le résultat en degrés² mais convertir directement en km² ça va pas aller avec pour hypothèse 1degré² = 10 000 km² à l’équateur (mais quoi ailleurs ???) … Avez-vous une petite recette qui pourrait m’aider ???

    Merci d’avance!


    WwAvE

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Ce petit algo adapté d'un code Delphi donne une approximation très acceptable de la surface d'un polygone.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function GEO_PolySurfaceKm2(var Points : array of Point) : single ;
    // s = (1/2) * abs(sigma(i=1->n,Xi*(Yi+1 - Yi-1)))
    // Yn+1 = Y1, Y0 = Yn
        i,j : integer;
        s : single;
        pprev,pcur,pnext : Point ; 
    begin
    result:=-1; 
    s:=0; 
    // on suppose que le polygone est fermé, 
    // c'est à dire que Points[Points.Count-1]=Points[0]
    j=Points.count ;
    if (j>3) then for i:=1 to j-1 do begin
       if i=1 then pprev:=points[j-1] else pprev:=points[i-1];// previous point
       pcur:=points[i];// current point
       if (i=j-1) then pnext:=points[1]else pnext:=points[i+1];// next point
       // surface (lat et lon exprimés en radian) 
       s:=s+(pcur.lon*cos(pcur.lat)*MINPARRAD)*((pnext.lat-pprev.lat)MINPARRAD);
       end;
    result:=abs(s/2) / sqr(NMPerKm);
    end;
    L'unité de s avant conversion en km2 est en "arc de 1 minute" au carré (pour la terre 1NM=1 arc de 1 minute). Si le rayon R de la sphère est différent de celui de la terre , 1 "arc de 1 minute" vaudra (2 PI x R) / (360 x 60).

  3. #3
    Membre confirmé Avatar de wwave
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Par défaut
    Salut !!

    J'avoue ne pas comprendre que vaut la valeur de MINPARRAD et de NMPerKm.

    Pour MINPARRAD si je comprends c'est minute d'arc par radian... sachant que pour le tour de la Terre c'est 2PI radians qui correspondent à 60arcx360°, a t'on
    MINPARRAD = (2xPI)/(60x360) ?????

    Pour NMPerKm je comprends vraiment pas...

    Peux tu me réexpliquer ??

    Merci !

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    MinParRad = (360x60)/(2xPI)
    pour convertir une latlon exprimée en radians, en minutes (1minute=1NM)

    NMperKM = 1/1.852
    KMperNM=1.852
    pour convertir une distance en Km en distance en NM
    result:=abs(s/2) / sqr(NMPerKm)
    =(s/2) * KMperNM * KMperNM
    = s/2 *1.852 *1.852 ;

Discussions similaires

  1. Calcul des surfaces d'intersections entre les cercles
    Par Midou45 dans le forum Mathématiques
    Réponses: 6
    Dernier message: 14/03/2012, 11h21
  2. Calcul surface à partir de points
    Par trebua dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/09/2008, 13h12
  3. Calcul de surface et de périmètre de forme géométrique
    Par Nathan dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 15/05/2006, 14h52
  4. Conseil programme calcul de surfaces
    Par koolkris dans le forum Langage
    Réponses: 12
    Dernier message: 07/02/2006, 17h28
  5. [GEOMETRIE] Cercle inscrit dans un polygone
    Par bebeours dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 10/02/2004, 15h18

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