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ù.

È stato utile?

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----->----->----->
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top