2013-01-10 5 views
2

Je dois déterminer la zone d'un objet Polygone qui a été dessiné sur un canevas dans une application Windows Store (WinRT) en XAML/C#. On dirait qu'ils ont dépouillé le Geometry.GetArea() des bibliothèques WinRT, donc je ne peux malheureusement pas l'utiliser. Comme ce polygone est de forme irrégulière, avec une liste dynamique de points, je ne peux pas utiliser de formules statiques. Existe-t-il des bibliothèques ou des extensions tierces que je puisse utiliser dans WinRT pour y parvenir?Zone d'un polygone dans WinRT XAML C#

Répondre

0

J'ai été capable de comprendre cela. Cette méthode prendra un objet Polygone et donnera la zone.

double GetPolygonArea(Polygon poly) 
    { 
     List<Point> points = new List<Point>(); 
     foreach (Point p in poly.Points) 
     { 
      points.Add(p); 
     } 
     points.Add(poly.Points[0]); 
     double xTotal = 0; 
     for (int x = 0; x < points.Count - 1; x++) 
     { 
      xTotal += ((points[x].X) * (points[x + 1].Y)); 
     } 
     double yTotal = 0; 
     for (int y = 0; y < points.Count - 1; y++) 
     { 
      yTotal += ((points[y].Y) * (points[y + 1].X)); 
     } 
     return Math.Abs((xTotal - yTotal)/2); 
    } 
Questions connexes