Ich habe bereits die Verwendung von Flood Fill kommentiert und erklärt, wie es besser wäre, da es flexibler ist, aber eine andere mögliche Lösung ist Scanline. (Ich sage möglich, weil es viele Annahmen über Ihre Geometrie macht, aber für den bestimmten gezeigten Satz und viele ähnliche würde es funktionieren.)
Für Ihr Beispiel mit 3 Punkten: Suchen Sie den Schnittpunkt aus dem Segment v1, v2 und der Linie, auf der v3 liegt. (Der Scheitelpunkt links oben in Version 2) Wir nennen diesen Scheitelpunkt 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
Es wird Scanline genannt, weil Sie (im Bild oben) gleichzeitig die roten und grünen Linien und dann gleichzeitig die roten und blauen Linien nach unten scannen.
Diese Lösung wäre sehr schnell, wenn es ein Indexmuster gibt, was häufig der Fall ist. Andernfalls wäre eine Berechnung erforderlich, um festzustellen, welcher benachbarte Scheitelpunkt auf der Linie liegt.
Lustige Sache ist Scanline, Barycentric Testing (in Dreiecksbegrenzungsrahmen) und Flood Fill sind alle Möglichkeiten, Dreiecke in 3D-Rendering zu zeichnen.