Hallo und frohe Ostern
,
ich arbeite mich zur Zeit für eine Klausur ein wenig in den Bresenham Algorithmus ein.
Ich habe hier einen Code und dazu die Frage was sich ändert (also in welchen Oktanten gezeichnet wird) wenn man die Absolutbeträge bei deltaX und deltaY weglässt.
Ich dachte ja eigentlich das es immer Absolutbeträge sein müssen.
Hier der Code:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| void zeichneLinie(x0,y0,x1,y1){
int deltaX = abs(x1-x0); //also dann int deltaX = x1-x0; int deltaY = abs(y1-y0); //also dann int deltaY = y1-y0;
int Q = 2*deltaY-deltaX; int Qdown = 2*deltaY; int Qup = 2*(deltaY-deltaX);
int y=y0;
for(int x = x0: x<= x1; x++){
setPixel(x,y);
if(Q < 0){ Q=Q+Qdown; }else{ Q=Q+Qup; y--; } } } |
Der befindet sich ja im 8 Oktanten.
Es gibt folgende Antwortmöglichkeiten:
Linien im ersten Oktanten werden gezeichnet? Linien im 5 werden in den Ersten abgebildet? und Linien im 8 werden korrekt dargestellt?
Im 8 kann doch nicht sein da deltaX dafür doch abs sein muss.
Ich würde tippen auf Linien im 5 werden in den Ersten abgebildet, aber kann mir das nicht so wirklich herleiten.
Danke für eure Hilfe
Moderiert von Th69: Code-Tags hinzugefügt