Hallo,

ich habe eine 3x2 Matrix K gegeben, in welcher pro Zeile je die x und y Koordinate (natürliche Zahlen) eines Punktes steht.
Dann wird ein ausreichendgroße Matrix D voller 0en erstellt, in welche die drei Punkte aus K hinein geschrieben werden, in dem sie die entsprechenden Einträge von
D mit einer 7 auffüllt (7 ist besser zu lesen als 1 finde ich).

Das geht ohne Problem.

Ich möchte nun diese drei Punkte über Geraden zu einem Dreieck verbinden. Dazu möchte ich "den" Bresenham Algorithmus verwenden.
Auch das funktioniert bis an und für sich.

Danach möchte ich das Dreieck mit 7en ausfüllen,also die Matrix D hat dann eine zusammenhängende Fläche aus 7en und der Rest sind 0en.
Der Sinn der Sache ist dann von einer anderen Matrix, nennen wir sie L,die Matrix D zu subtrahieren um alles was in innerhalb des Dreieckes steht zu Löschen (L hat auch nur 0en und 7en).

Nun das Problem:

Da die Geraden,welche die Kanten des Dreieckes beschreiben meistens nicht nur ganzzahlige Werte annehmen, muss der Bresenham Algorithmus runden. Das soll er natürlich auch.
Nur leider rundet er manchmal "auf ", in dem Sinne,dass er einen vom Schwerpunkt des Dreieckes weiterwegliegenden Punkt markiert, sodass beim Füllen das Dreick dann größer gefüllt wird
als es ist. Da aber das Dreick später von L subtrahiert werden soll, wird dann zuviel subtrahiert. Ich will aber weniger subtrahieren.

Wie könnte ich das machen?