Skomentowałem już użycie wypełnienia zalewowego i tego, jak byłoby lepiej, ponieważ jest bardziej elastyczny, ale innym możliwym rozwiązaniem jest scanline. (Mówię, że jest to możliwe, ponieważ robi wiele założeń na temat twojej geometrii, ale dla konkretnego pokazanego zestawu i wielu podobnych działałoby.)
Na przykład z 3 punktami: Znajdź wierzchołek przecięcia z segmentu v1, v2 i linii, na której leży v3. (Wierzchołek w lewym górnym rogu v2) Nazwiemy ten wierzchołek v4.
For every vertex pair a,b down v1,v4 and v1,v3
For every vertex from a to b
Mark as in the set
For every vertex pair a,b down v3,v2 and v4,v3
For every vertex from a to b
Mark as in the set
Nazywa się to scanline, ponieważ (na powyższym obrazku) wchodzisz jednocześnie po czerwonych i zielonych liniach, a następnie czerwone i niebieskie linie jednocześnie skanujesz linie podczas jazdy.
To rozwiązanie byłoby bardzo szybkie, jeśli istnieje wzorzec indeksu, co często ma miejsce. W przeciwnym razie konieczne byłoby obliczenie w celu ustalenia, który sąsiadujący wierzchołek leży na linii.
Zabawne jest skanowanie liniowe, barycentryczne testowanie (w obwiedni trójkąta) i wypełnianie przez zalanie to wszystkie sposoby rysowania trójkątów w renderowaniu 3d.