linie ziehen
-
habe mir das grade mal angesehen...nur ist das nen anderer aldprythmus als der, den ich verweden...bei mir müsste die lösung in der inneren schleife liegen...
wäre cool wenn ihr mir das sagen könntet
-
Wozu benötigst du überhaupt eine doppelt verschachtelte Schleife? Mit deinem Code würdest du eher ein Rechteck zeichnen als eine Linie - und das dürfte nicht der Sinn einer DrawLine() Funktion sein.
-
genau er zeichnet nen rechteck....ich wollte es so machen...
eine schleife die nach recht läuft (1.schleife)
und die innere schleife um nach oben zu laufenund das so...das der punkt in dann vertikal gesetzt wird!
das muss doch gehen...* .
* .
* .
*.
****************so dachte ichs mir
-
die linie ist krumm^^
aber sicher wisst ihr was ich meine
-
Wenn du so krampfhaft an deinem Algorithmus festhältst, kann das nichts werden - für eine einfache gerade Linie benötigst du keine Doppelschleife (und wenn, müsstest du noch eine if-Abfrage einbauen, ob der aktuelle Punkt auf der Linie liegt). Da ist der Bresenham-Algorithmus wesentlich eleganter.
-
cMAN schrieb:
habe mir das grade mal angesehen...nur ist das nen anderer aldprythmus als der, den ich verweden...bei mir müsste die lösung in der inneren schleife liegen...
wäre cool wenn ihr mir das sagen könntet
Hehe...
Küchenfeeforum schrieb:
cMAN: Irgendwas läuft mit meiner Pizza falsch!! Ich bereite alles vor und koche sie dann 20min auf mittlerer Temperatur....
missx: wtf?So wird Pizza wird gebacken...
cMAN: Ja, habe mir das grad mal angesehen, ist aber was anderes als ich mache. Kann mir denn keiner sagen was ich machen muss damit mein Rezept funktioniert?oO
-
okay danke...
ich werde es mal umbauen...dann melde ich mich heute abend wieder...
thx@all
-
void drawLine(Bmp* this,Color c,int fromX,int fromY,int toX,int toY){ double s; double e; int dx; int dy; dx = toX-fromX; dy = toY-fromY; e = 0.0; s = dy/dx; while (fromX <= toY){ setBmpPoint(this,c,fromX,toX); fromX++; e += s; if (e > 0.5) { fromY++; e-- ; } } }
so...habe das Programm mal gemacht...aber die kagge ist...der zeichnet ned vertikal...1. ich schnall nicht warum...und 2. was muss ich machen?
-
??
-
cMAN schrieb:
der zeichnet ned vertikal...1. ich schnall nicht warum...
Du hast ja (etwas merkwürdig zwar aber naja) die Berechnung der y-koordinaten über dx und dy der zu zeichenden Linie realisiert. Wie gross ist denn dx für eine vertikale Linie? Eben, dx = 0. Also musst Du x gleichhalten und y inkrementieren.
Eigentlich wäre es immer gut zur Lösung eines Programmierproblems (sei es aus Mathe oder sonst was), erstmal zu sehen wie man es in der "Realität" machen würde. Hier also gucken, wie man die Punkte einer Linie auf dem Papier berechnen und zeichnen würde. Wenn man das dann simuliert, hat man schon einen guten Ansatz.
Später, wenn man alles gut "durchdrungen" und verstanden hat, kann man sich ja noch überlegen, ob es noch andere Möglichkeiten gibt, das Problem mit einem Programm zu lösen.
Aber erst mal sollte man die Materie VERSTANDEN haben.
:xmas2: