Calea spre Triangle List (.NET / C #)

voturi
2

Dată fiind o cale exprimată ca o matrice de puncte 2d:

Point[] path = new Point[4]
{
    new Point(0,0),
    new Point(10,0),
    new Point(10,10),
    new Point(0,10),
};

... Aici, o cutie.

Care este cel mai bun mod de a converti acest lucru într-o listă de triunghiuri (care umple calea) care urmează să fie utilizat într-o aplicație 3D? Având în vedere că acesta este doar un exemplu simplu și calea poate fi destul de complex în realitate. Există ceva deja în cadrul, poate System.Drawing sau în WPF care ar ajuta cu asta?

Editare: (După comentariul lui Samuel) În mod ideal, ca I'l să fie în măsură să se ocupe cu ambele poligoane convexe și concave, altfel grafica va trebui să fie din mai multe poligoane convexe manual ..

Întrebat 12/03/2009 la 13:28
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
5

Depinde de ceea ce calea constă din, și modul în care este creat.

Dacă este întotdeauna un poligon convex, puteți crea un ventilator triunghi foarte ușor, care va umple în regiune.

Dacă nu este un poligon convex, va trebui cel mai probabil de a utiliza o anumită formă de triangulare pentru a completa calea. Există destul de multe opțiuni de acolo. Cele mai multe dintre mostre de cod este în C sau C ++, nu în C #, dar acest lucru ar putea ajuta:

http://local.wasp.uwa.edu.au/~pbourke/papers/triangulate/morten.html

Ideea de bază este de a umple în limitele exterioare, iar rutina de triangulație va trece înapoi indicii de triunghi corecte necesare pentru aplicația 3D.

Nu există nimic în cadrul care va face acest lucru pentru tine.

Publicat 12/03/2009 la 13:43
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more