Tutorial
Arbeiten mit Grafik-Befehlen
von ytwinky | Seite 7 von 7 |
Jetzt wissen wir also genug, um folgende Zeilen zu verstehen:
Dim bi(0 To 18) As Integer={69, 110, 100, 101, 32, 100, 101, 115, 32, 84, 117, 116, 111, 114, 105, 97, 108, 115}
Dim Msg As String=Space(UBound(bi))
For i As Integer=0 To UBound(bi)
Msg[i]=bi(i)
Next
Line (0, 0)-(ScreenWidth, ScreenHeight), Weiss, BF
Draw String ((ScreenWidth-Len(Msg)*8)/2, ScreenHeight/2), Msg 'Aufforderung, eine Taste zu drücken..
Ich wll noch eine Bemerkung zum '&'-Operator anfügen: Der &-Operator dient zum Verknüpfen von Strings, das ist nicht so schwer zu verstehen. Es gibt aber eine Besonderheit dabei: ist der zu verküpfenden Teil numerisch, wird er vom &-Operator automatisch ins String-Format umggewandelt, ohne den nervigen Str()-Befehl. Deshalb ist er imho dem Gebrauch von Str() vorzuziehen.
Wer bis hierhin brav durchgehalten hat und die Code-Schnipsel in einer Datei gesammelt hat(so wie ich), sollte jetzt ein Programm haben, daß etwa so aussieht:
#define auf ,
#define voll ,,,F
Const Res800x600=19, Schwarz=0, Blau=1, Gruen=2, Rot=4, Weiss=7 'Halbmesser für die Kreise
Const Pi=4.0*Atn(1.0)
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^^
Declare Function Strecke(DeltaY As Double, DeltaX As Double) As Double
Function Strecke(DeltaY As Double, DeltaX As Double) As Double
Return Sqr(DeltaY*DeltaY+DeltaX*DeltaX)
End Function
Dim As Integer x, y, ScreenWidth, ScreenHeight, Radius=3 'Passende Variablen deklarieren
Dim As Punkt P1, P2, P3 'die Koordinaten dafür denken wir uns aus..
Dim As Double AnfangsWinkel, EndWinkel, s, w, rechts, hoch
P1.x=370
P1.y=250
P2.x=470
P2.y=350
Screen Res800x600 'Dank sinnvoller Belegung wissen wir, welche Dimension der Bildschirm hat
Color Schwarz auf Weiss
Cls
ScreenInfo ScreenWidth, ScreenHeight 'Auflösung holen, damit FB das auch weiß..
Line (P1.x, P1.y)-(P2.x, P2.y), Blau
Circle (P1.x, P1.y), Radius, Weiss, voll
Circle (P1.x, P1.y), Radius, Rot
Circle (P2.x, P2.y), Radius, Weiss, voll
Circle (P2.x, P2.y), Radius, Rot
PSet(P1.x, P1.y), Schwarz
PSet(P2.x, P2.y), Schwarz
DRAW STRING (P1.x-7, P1.y-20), "P1"
DRAW STRING (P2.x-7, P2.y+5), "P2"
AnfangsWinkel=Pi/9.0
EndWinkel=Pi/3.0
Radius=100
P3.y=200
P3.x=200
Circle (P3.x, P3.y), Radius, Gruen, -AnfangsWinkel, -EndWinkel
s=Radius/2.0
w=AnfangsWinkel+(EndWinkel-AnfangsWinkel)/2.0
Circle(P3.x+s*Cos(w), P3.y-s*Sin(w)), 3, Rot
Circle(P3.x, P3.y), Radius, Rot, -AnfangsWinkel, -EndWinkel
Paint(240, 160), Gruen, Rot
CIRCLE (160, 100), 30, 15
PAINT (160, 100), 1 , 15
?"Strecke von P1 nach P2=" &Strecke(P1.y-P2.y, P1.x-P2.x)
Line (P3.x, P3.y)-(P1.x, P1.y), Rot, B
Line (P3.x, P3.y)-(P1.x, P1.y), Rot, BF
Dim bi(0 To 18) As Integer={69, 110, 100, 101, 32, 100, 101, 115, 32, 84, 117, 116, 111, 114, 105, 97, 108, 115}
Dim Msg As String=Space(UBound(bi))
For i As Integer=0 To UBound(bi)
Msg[i]=bi(i)
Next
Line (0, 0)-(ScreenWidth, ScreenHeight), Weiss, BF
Draw String ((ScreenWidth-Len(Msg)*8)/2, ScreenHeight/2), Msg 'Aufforderung, eine Taste zu drücken..
Sleep 'und warten..
End '..und fertich ^^
Wer es aber gar nicht abwarten konnte und gleich den Code kopiert hat, wird nicht viel Spaß daran haben, darf nicht über Los gehen und nicht 4000M einstecken..
Gruß
ytwinky
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|