Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [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!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Beispiel - Kuwait-Flagge zeichnen

Uploader:AdministratorSebastian
Datum/Zeit:22.09.2010 12:42:48

'
'  Kuwait-Flagge mit Drawing Primitives zeichnen
'  Zum Vergleich siehe z.B. http://de.wikipedia.org/wiki/Kuwait
'  Die kleine "Schwierigkeit" besteht darin, dass die Flagge nicht nur aus Rechtecken besteht.
'
'  Fuer FreeBASIC, getestet mit Version 0.21.1
'
'  Lizenz: Public Domain, soweit das in Deutschland moeglich ist
'


Declare Sub ZeichneKuwaitFlagge (ByVal XPos As Integer, ByVal YPos As Integer, ByVal Breite As Integer, ByVal Hoehe As Integer)

ScreenRes 640,480,24

Line (0,0)-(640,480), &HE0E0E0, BF 'Zum Beispiel grauen Hintergrund zeichnen

ZeichneKuwaitFlagge 100,100, 280,102
'                   |     |  \     /
'                   \    /    \   /
'                    \  /      \ /
'                     \/      Groesse der Flagge: 280 Pixel breit, 102 Pixel hoch
'                   Position der oberen, linken Ecke der Flagge als X,Y-Koordinate


sleep




' ** Unterprogramm zum Zeichnen der Flagge **
' Position und Groesse der Grafik koennen vom Benutzer als Parameter festgelegt werden.
Sub ZeichneKuwaitFlagge (ByVal XPos As Integer, ByVal YPos As Integer, ByVal Breite As Integer, ByVal Hoehe As Integer)
    Dim As Integer Streifenhoehe, XKoordinateRechts, XKoordinateSchwarz
    If ((XPos < 0) OrElse (YPos < 0) OrElse (Breite < 4) OrElse (Hoehe < 3)) Then Exit Sub 'Ungueltige Parameterwerte
    Streifenhoehe = Hoehe / 3
    XKoordinateRechts = XPos + Breite - 1
    'Zuerst die drei horizontalen Streifen zeichnen
    Line (XPos,YPos)-(XKoordinateRechts,YPos+StreifenHoehe-1),RGB(0,122,61),BF 'Oberer Streifen (gruen)
    Line (XPos,YPos+StreifenHoehe)-(XKoordinateRechts,YPos+2*StreifenHoehe-1),&HFFFFFF,BF 'Mittlerer Streifen (weiss)
    Line (XPos,YPos+StreifenHoehe*2)-(XKoordinateRechts,YPos+3*StreifenHoehe-1),RGB(206,17,38),BF 'Unterer Streifen (rot)
    'Jetzt den schwarzen Polygonzug links darueber zeichnen!
    'Dafuer die X-Koordinate der rechten Ecken davon berechnen (25% der Breite)
    XKoordinateSchwarz = XPos + Breite*0.25 - 1
    'Den Rahmen des Polygons zeichnen (rechts):
    Line (XPos,YPos)-(XKoordinateSchwarz,YPos+StreifenHoehe-1),0
    Line (XKoordinateSchwarz,YPos+StreifenHoehe-1)-(XKoordinateSchwarz,YPos+2*StreifenHoehe-1),0
    Line (XPos,YPos+3*StreifenHoehe-1)-(XKoordinateSchwarz,YPos+2*StreifenHoehe-1),0
    'Linker Rand:
    Line (XPos,YPos)-(XPos,YPos+3*Streifenhoehe-1),0
    'Jetzt das Polygon schwarz uebermalen (PAINT)
    Paint (XPos+1,YPos+1), 0, 0
                         ' ^  ^
                         ' |  \
                         ' |   -- Umrandungsfarbe des Polygonzugs (=Fuellgrenze), auch schwarz. Haben wir vorhin ...
                         ' \                                                               ... mit LINEs gezeichnet.
                         '  -- Fuellfarbe 0 = schwarz
End Sub