Entwickeln Sie eine Grafikbibliothek zur Verwaltung und Darstellung von Grafiken auf einem Bildschirm. Die Bibliothek soll das Setzen einzelner Pixel, das Füllen des gesamten Bildschirms mit einer Farbe sowie die Umrechnung von Benutzerkoordinaten in Bildschirmkoordinaten ermöglichen. Erstellen sie dazu das Sourcefile canvas.s
.
In grafischen Anwendungen ist es essenziell, dass Benutzerkoordinaten (z.B. Mauspositionen oder grafische Objekte) präzise in Bildschirmkoordinaten umgerechnet werden. Dies gewährleistet eine bedienungsfreundliche Platzierung und Darstellung von Grafikelementen auf dem Bildschirm. Ein “Canvas” dient dabei als virtuelles Zeichenfeld, auf dem Grafiken gezeichnet werden können, bevor sie auf den tatsächlichen Bildschirm übertragen werden. Durch die Umrechnung der Koordinaten kann eine flexible und benutzerfreundliche Interaktion mit der grafischen Oberfläche erreicht werden.
Überlegen sie sich im Anschluss Möglichkeiten die Grafikfunktionen ausgiebig zu testen, in dem sie etwa wie abgebildet mit den RGB-Farben experimentieren:
Anforderungen:
canvas_init
, die einen Framebuffer für die Bildschirmausgabe initialisiert. Diese Funktion soll die Bildschirmauflösung und Farbtiefe festlegen und die Basisadresse des Framebuffers speichern. Bei einem Fehler während der Initialisierung soll eine geeignete Fehlermeldung ausgegeben werden.put_pixel
, die es ermöglicht, einen einzelnen Pixel an den angegebenen Benutzerkoordinaten mit einer bestimmten Farbe zu setzen. Diese Funktion soll sicherstellen, dass die angegebenen Koordinaten innerhalb der Bildschirmgrenzen liegen und die Umrechnung in Bildschirmkoordinaten korrekt erfolgt.fillscreen
, die den gesamten Bildschirm mit einer angegebenen Hintergrundfarbe füllt. Diese Funktion soll effizient alle Pixel des Framebuffers mit der gewählten Farbe aktualisieren.get_canv_x
und get_canv_y
, die Benutzerkoordinaten in das Canvas-Koordinatensystem umrechnen. Das Canvas-Koordinatensystem soll so definiert sein, dass der Ursprung oben links liegt, während die Benutzerkoordinaten einen anderen Referenzpunkt (z.B. Bildschirmmittelpunkt) haben können.Schnittstellen:
canvas_init
0
) oder Fehlercode (-1
)put_pixel
r1
– Benutzer-x-Koordinater2
– Benutzer-y-Koordinater3
– Farbe des Pixelsfillscreen
r1
– Hintergrundfarbeget_canv_x
r1
– Benutzer-x-Koordinater0
– Umgerechnete Canvas-x-Koordinateget_canv_y
r1
– Benutzer-y-Koordinater0
– Umgerechnete Canvas-y-Koordinatecanvas_put_pixel
r1
– Canvas-x-Koordinater2
– Canvas-y-Koordinater3
– Farbe des Pixelszurück | Hauptmenü | weiter |