Diskussion:Grafikmodus

Aus Lowlevel
Wechseln zu:Navigation, Suche

Ich finde dieses Tutorial irreführend und unvollständig, ich habe vergeblich nach einer Anleitung zum Zeichnen gesucht. Ich weiß nun immer noch nicht, wie man eine Sonne malt. --DerHartmut 17:51, 20. Mär. 2013 (CET)

Natürlich ist es noch unvollständig. Wer will, kann gerne etwas ergänzen. Aber was genau meinst du mit irreführend? Du brauchst nun mal einigermaßen umfassende mathematische Grundkenntnisse, um Linien und insbesondere auch Kreise zu zeichnen, da man für diese dann auch noch Winkelfunktionen (Sinus etc.) benötigt. Ich habe mit der Seite eben mal angefangen, da ein bisschen immer noch besser ist als gar nichts. Ich versuche, sie so weit wie möglich zu ergänzen, aber ich bin ja zum Glück hier nicht allein. --Roadrunner 20:44, 20. Mär. 2013 (CET)
Was irreführend ist? Man könnte auf die Idee kommen das sich bei der dargestellten Funktion um Bresenham handelt. Das ist aber nicht der Fall. Bresenham kommt ohne gleitkomma aritmetik aus und kann (wenn vollständig) auch senkrechte Linien ohne Division by Zero zeichnen.--MNemo 22:20, 20. Mär. 2013 (CET)
Das nächste Mal sollte ich den Einsatz von <sarkamus>-Tags in Betracht ziehen...der Artikel ist in Ordnung, nur fand ich den Titel lustig, da ich eine andere Art von "Zeichnen" im Kopf hatte ;-) --DerHartmut 23:14, 20. Mär. 2013 (CET)
Der Sarkasmus war doch eigentlich offensichtlich ;-) Ich würde allerdings einen anderen Titel vorschlagen, auf die Idee nach "Zeichnen" zu suchen kommt wohl keiner, und es passt imho auch nicht so tolle. Allerdings hab ich auch keine konstruktiven Alternativen (vllt Grafikprimitive oder sowas). Außerdem sollte definitiv Bresenham rein^^ --livinskull 13:45, 21. Mär. 2013 (CET)
Mein Fehler - Geschriebene Ironie kann man eben nicht so gut erkennen wie gesprochene... Zum Titel: Ich hab mir gedacht, so eine Lowlevel-Bildschirmausgabe sollte schon auch mal ins Wiki. Und da ist mir eben kein besserer Titel eingefallen. Und der Bresenham-Algorithmus funktioniert genauso wie hier beschrieben. Ich habe nur deshalb eine Gleitkommazahl verwendet, damit das ganze etwas übersichtlicher ist. Wer will, kann es auch so formulieren:

<c> void linie(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2) {

   for(int x = x1; x <= x2; ++x)
       putpixel(x, y1 + (x * ((x2 - x1) / (y2 - y1))));

} </c>

Dabei könnten allerdings leichte Rundungsfehler entstehen, da bei Integer-Divisionen der Nachkommateil nur abgeschnitten und nicht gerundet wird. Wie das bei senkrechten Strichen ist - Das funktioniert mit Bresenham eben nicht. Zumindest nicht mit den Formeln dafür, die ich bisher gesehen habe (es wird immer durch Delta X geteilt). --Roadrunner 14:46, 21. Mär. 2013 (CET)
Das ist immernoch kein Bresenham ;-) Das ist ne simple lineare Geradenfunktion. Bresenham kommt, wie MNemo bereits erwähnte, ohne Gleitkommaarithmetik und ohne Division/Multiplikation aus. (siehe zum Beispiel Wikipedia). Davon abgesehen finde ich auch das wir sowas hier brauchen, und es is schön das das mal jemand anpackt. --livinskull 15:07, 21. Mär. 2013 (CET)
Und Linien mit Steigungen über 1 und unter -1 erscheinen nur als gepunktete Linien, weil an jede x-Koordinate nur ein Pixel gesetzt wird. Egal welcher Algorithmus hier im Wiki präsentiert wird, es wäre schön, wenn der schon mal auf einer CPU gelaufen ist und noch besser, wenn er korrekt ist ;) --Jidder 00:37, 22. Mär. 2013 (CET)