Fehler in drawTriangle()

Boddlnagg
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 10. Dez 2012 12:07

Fehler in drawTriangle()

Beitrag von Boddlnagg »

Uns ist aufgefallen, dass die vorgegebene drawTriangle() Funktion nicht korrekt funktioniert, wenn Koordinaten außerhalb des Viewports liegen.
Beispiel: Das Ergebnis von drawTriangle(77, -37, 1, 46, 1073, 233) würde ich nicht mehr als Dreieck bezeichnen :wink:

Ich habe mal nachgeschaut, woran das liegen könnte, und mir sind diese Zeilen in drawSpansBetweenEdges() aufgefallen:

Code: Alles auswählen

int yMin = max(0, e2.y1);
int yMax = min(e2.y2, height);
Das sorgt z.B. dafür, dass falls e2.y1 < 0, der Bereich zwischen e2.y1 und 0 nicht mehr miteingerechnet wird und er bei 0 anfängt, die Spitze zu zeichnen, die aber eigentlich im negativen Bereich liegen müsste. Um das zu korrigieren, könnte man auf factor1 und factor2 vorher schon was draufaddieren, was die fehlenden iterationen später "simuliert".

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Fehler in drawTriangle()

Beitrag von RobDangerous »

Autsch, das hab' ich kaputtgebugfixed. Setz' ich mich nochmal dran.

Boddlnagg
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 10. Dez 2012 12:07

Re: Fehler in drawTriangle()

Beitrag von Boddlnagg »

Der Fehler ist im vorgegebenen Code für die vierte Übung immer noch nicht behoben, sehe ich das richtig?

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Fehler in drawTriangle()

Beitrag von RobDangerous »

Jep. Aber morgen wird's erledigt.

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Fehler in drawTriangle()

Beitrag von RobDangerous »

Nu isses repariert.

Antworten

Zurück zu „Archiv“