Tutorial
Arbeiten mit Grafik-Befehlen
von ytwinky | Seite 2 von 7 |
Wie im Textmodus geht es auch im Grafikmodus von links nach rechts(x-Richtung) und von oben
nach unten(y-Richtung). Das sieht sehr nach einem Schema aus und deshalb nutzen wir das auch gleich:
Ein Punkt hat einen x-Wert und einen y-Wert. Das müssen wir nur noch dem Compiler
beibringen:
Type Punkt 'wir definieren einen neuen Typ mit unseren Eigenschaften
As Integer x, y 'diese beiden Werte sollen einen Punkt festlegen
End Type '..so, fertig ist der Typ^^
Diesen Typ können wir in unserem Programm nun immer
verwenden. Allerdings ist er damit nicht generell in FreeBASIC verfügbar! Das könnten wir
erreichen, indem wir unseren Typ als GrafikTyp.Bi speichern und dann mittels
#include "GrafikTyp.Bi" in andere Programme einbinden..
Dazu steht an anderer Stelle mehr (Oops, nicht den Faden verlieren ^^)
Jetzt legen wir erst einmal fest, daß wir 2 Punkte(P1 und P2) benötigen.
Aber welche Werte bekommen die? Wir könnten den ersten Punkt als den Punkt festlegen, an dem die Grafik
anfängt, also x=0 und y=0. Prima, als zweiten Punkt könnten wir den Endpunkt nehmen mit x=ScreenWidth und y=ScreenHeight.
Das wäre aber unpraktisch, wie wir gleich sehen werden. Deshalb benutzen wir als Punkt 2 den Mittelpunkt.
Den könnten wir über ein Geradenschnittprogramm berechnen, wir begnügen uns aber mit der Feststellung, daß er ja auf der Hälfte der Strecken sein muß:
x=ScreenWidth\2 und y=ScreenHeight\2
('\' ist hierbei der Operator für Integer-Division, die ist schneller als die für Kommazahlen)
Fehlt nur noch, daß wir die Farben festlegen:Schwarz soll das Koordinatensystem sein, Weiß der Hintergrund und rot die Grafik.
Das fassen wir erstmal zusammen:
#define auf ,
Type Punkt 'wir definieren einen neuen Typ mit unseren Eigenschaften
As Integer x, y 'diese beiden Werte legen einen Punkt fest
End Type '..so, fertig ist der Typ^^
Const Res800x600=19, Schwarz=0, Weiss=15, Rot=4
Dim As Integer ScreenWidth, ScreenHeight 'Variablen für die Auswertung deklarieren
Dim As Punkt Anfangspunkt, EndPunkt
Color Schwarz auf Weiss
Screen Res800x600
ScreenInfo ScreenWidth, ScreenHeight
?"Auflösung:" &ScreenWidth &"x" &ScreenHeight;
AnfangsPunkt.y=0
AnfangsPunkt.x=0
EndPunkt.y=ScreenHeight\2
EndPunkt.x=ScreenWidth\2
Sleep 'Ausführung zum Betrachten anhalten
End
..fertig, kompilieren, ausführen und staunen, denn die Ausgabe ist interessant, aber nicht vollständig^^
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|