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; }