Beispiel #1
0
        public static List <OrTriangle> GetTriangles(List <Point2d> plist)
        {
            DelaunayTriangulation del = new DelaunayTriangulation();

            for (int i = 1; i <= plist.Count; i++)
            {
                del.Vertex[i].x = (int)plist[i - 1].X;
                del.Vertex[i].y = (int)plist[i - 1].Y;
            }
            int ntri = del.Triangulate(plist.Count);
            List <OrTriangle> tlist = new List <OrTriangle>();

            for (int i = 1; i <= ntri; i++)
            {
                OrTriangle t = new OrTriangle();
                t.p0.X = del.Vertex[del.Triangle[i].vv0].x;
                t.p0.Y = del.Vertex[del.Triangle[i].vv0].y;
                t.p1.X = del.Vertex[del.Triangle[i].vv1].x;
                t.p1.Y = del.Vertex[del.Triangle[i].vv1].y;
                t.p2.X = del.Vertex[del.Triangle[i].vv2].x;
                t.p2.Y = del.Vertex[del.Triangle[i].vv2].y;
                tlist.Add(t);
            }
            return(tlist);
        }
 public static List<OrTriangle> GetTriangles(List<Point2d> plist)
 {
     DelaunayTriangulation del = new DelaunayTriangulation();
     for (int i = 1; i <= plist.Count; i++)
     {
         del.Vertex[i].x = (int)plist[i - 1].x;
         del.Vertex[i].y = (int)plist[i - 1].y;
     }
     int ntri = del.Triangulate(plist.Count);
     List<OrTriangle> tlist = new List<OrTriangle>();
     for (int i = 1; i <= ntri; i++)
     {
         OrTriangle t = new OrTriangle();
         t.p0.x = del.Vertex[del.Triangle[i].vv0].x;
         t.p0.y = del.Vertex[del.Triangle[i].vv0].y;
         t.p1.x = del.Vertex[del.Triangle[i].vv1].x;
         t.p1.y = del.Vertex[del.Triangle[i].vv1].y;
         t.p2.x = del.Vertex[del.Triangle[i].vv2].x;
         t.p2.y = del.Vertex[del.Triangle[i].vv2].y;
         tlist.Add(t);
     }
     return tlist;
 }