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!

Referenz - AND (Methode)

Referenz-Navigation

 

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

AND 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 AND des zu zeichnenden Pixels mit dem zu überschreibenden Pixel.

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

Dezimal    Binär
 172       10101100
  47       00101111
-AND---------AND---
  44       00101100

Die AND-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:

' 32-bit-Bildschirm erstellen
ScreenRes 320, 200, 32
Line (0, 0)-(319, 199), RGB(255, 255, 255), bf

' drei Sprites mit Kreisen in zyan, magenta und gelb zeichnen
Const As Integer radius = 32
Dim As Any Ptr cc, cm, cy
cc = ImageCreate(radius * 2 + 1, radius * 2 + 1, RGBA(255, 255, 255, 255))
cm = ImageCreate(radius * 2 + 1, radius * 2 + 1, RGBA(255, 255, 255, 255))
cy = ImageCreate(radius * 2 + 1, radius * 2 + 1, RGBA(255, 255, 255, 255))
Circle cc, (radius, radius), radius, RGB(0, 255, 255), , , 1, f
Circle cm, (radius, radius), radius, RGB(255, 0, 255), , , 1, f
Circle cy, (radius, radius), radius, RGB(255, 255, 0), , , 1, f

' Kreise überlappend zeichnen
Put (146 - radius, 108 - radius), cc, And
Put (174 - radius, 108 - radius), cm, And
Put (160 - radius,  84 - radius), cy, And

' Speicher freigeben und auf Tastendruck warten
ImageDestroy cc
ImageDestroy cm
ImageDestroy cy
Sleep

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


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