Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [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!

Referenz - OR (Methode)

Referenz-Navigation

 

Syntax: { PUT | DRAW STRING } [Puffer, ] [STEP] (x, y), [ weitere Angaben ... ], OR
Typ: Schlüsselwort
Kategorie: Grafik

OR ist ein Schlüsselwort, das im Zusammenhang mit BefehlsreferenzeintragPUT (Grafik) und BefehlsreferenzeintragDRAW STRING eingesetzt wird. Die Farbe des gezeichneten Pixels ist das Ergebnis eines logischen OR des zu zeichnenden Pixels mit dem zu überschreibenden Pixel.

Beispiel:
An der Position (100, 100) befindet sich ein Pixel mit dem Farbattribut 172. Dieses soll nach der OR-Methode mit einem Pixel des Farbattributs 15 überzeichnet werden. Das Ergebnis ist ein Pixel des Farbattributs 175. Dies ergibt sich folgendermaßen:

Dezimal    Binär
 172       10101100
  15       00001111
--OR----------OR---
 175       10101111

Die OR-Methode kann mit allen Farbtiefen angewandt werden, also sowohl in palettenindizierten Modi als auch in High-/Truecolor-Modi. Beachten Sie, dass in palettenindizierten Modi das sichtbare Ergebnis nicht nur von den Farbattributen, sondern auch von den zugeordneten Paletten-Einträgen abhängig ist. Siehe dazu BefehlsreferenzeintragPALETTE und BefehlsreferenzeintragStandardpaletten.

Beispiel: drei überlappende Kreise in verschiedenen Farben zeichnen

ScreenRes 320, 200, 16

' 3 Sprite mit je einem Kreis in den Farben rot, grün und blau erzeugen
Const As Integer radius = 32
Dim As Any Ptr rotkreis, gruenkreis, blaukreis
rotkreis   = ImageCreate(radius * 2 + 1, radius * 2 + 1, RGBA(0, 0, 0, 0))
gruenkreis = ImageCreate(radius * 2 + 1, radius * 2 + 1, RGBA(0, 0, 0, 0))
blaukreis  = ImageCreate(radius * 2 + 1, radius * 2 + 1, RGBA(0, 0, 0, 0))
Circle rotkreis,   (radius, radius), radius, RGB(255, 0, 0), , , 1, f
Circle gruenkreis, (radius, radius), radius, RGB(0, 255, 0), , , 1, f
Circle blaukreis,  (radius, radius), radius, RGB(0, 0, 255), , , 1, f

' Kreise überlappend zeichnen
Put (146 - radius, 108 - radius), rotkreis,   Or
Put (174 - radius, 108 - radius), gruenkreis, Or
Put (160 - radius,  84 - radius), blaukreis,  Or

' Speicher freigeben und auf Tastendruck warten
ImageDestroy rotkreis
ImageDestroy gruenkreis
ImageDestroy blaukreis
Sleep

Siehe auch:
BefehlsreferenzeintragOR (Operator), BefehlsreferenzeintragPUT (Grafik), BefehlsreferenzeintragDRAW STRING, BefehlsreferenzeintragSCREENRES, BefehlsreferenzeintragAND (Methode), BefehlsreferenzeintragPSET (Methode), BefehlsreferenzeintragPRESET (Methode), BefehlsreferenzeintragALPHA, BefehlsreferenzeintragADD, BefehlsreferenzeintragTRANS, BefehlsreferenzeintragCUSTOM, BefehlsreferenzeintragGrafik


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 08.08.2007 von AdministratorSebastian angelegt.
  • Die aktuellste Version wurde am 26.08.2012 von Redakteurnemored gespeichert.
  Versionen Versionen