Qual è il contrario di un poligono di triangolazione?
-
01-10-2019 - |
Domanda
Dopo che ho fatto una triangolazione 2D, alcuni triangoli hanno lo stesso colore e voglio ricombinarli per il disegno in percorsi di grafica dello stesso colore. Trovo che se io solo disegnare i triangoli uno per uno, alcuni rendering grafico mostra cuciture tra i triangoli (almeno se l'anti-aliasing e / o la trasparenza è coinvolto).
Quindi, come faccio a prendere una serie di (non sovrapposti) triangoli e produrre un percorso di grafica, che può contenere fori e poligoni disgiunti?
ciecamente aggiungendo i triangoli ad un percorso grafico effettivamente funziona abbastanza bene per la compilazione (anche se non per accarezzare, naturalmente), ma non si sente il diritto di esportare tali punti interni più.
Soluzione
Pensiamo ogni triangolo come un contorno composto da tre vettori che vanno in una catena antiorario.
<--^
| /
|/
V
Quindi per tutti i triangoli nella vostra forma, prendere l'unione dei loro vettori di contorno. Se due vettori contorno nell'Unione sono identici, ma vanno in direzioni opposte, si annullano a vicenda e vengono rimossi dal sindacato.
Ad esempio, per due triangoli che sono affiancate l'unione 6 vettori
<--^^
| //|
|// |
VV-->
che riduce al 4 vettori perché i due vettori diagonali nel mezzo annullano perché sono identici ma correre in direzioni opposte:
<--^
| |
| |
V-->
Troverete questo funziona per i più grandi aggregazioni di triangoli. Basta collegare la coda vettori risultanti a testa per ottenere tracciati chiusi. Alcuni dei percorsi chiusi può funzionare in senso orario, e questi sono i fori.
<-----<-----<-----^
| |
| |
V ^-----> ^
| | | |
| | | |
V <-----V ^
| |
| |
V----->----->----->