Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Arbeiten mit Grafik-Befehlen

von RedakteurytwinkySeite 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

 

Gehe zu Seite Gehe zu Seite  1  2  3  4  5  6  7  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 09.08.2007 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 11.08.2007 von Redakteurytwinky gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen