Syntax A: POINT(x, y [, Puffer] )
Syntax B: POINT(Funktion)
Typ: Funktion
Kategorie: Gfx
POINT gibt Informationen über die zuletzt gesetzten Pixel oder die Farbe eines Pixels zurück.
- 'x' und 'y' sind die Koordinaten des Pixels, dessen Farbe zurückgegeben werden soll. Die Koordinaten sind von den letzten WINDOW und VIEW-Anweisungen abhängig.
- 'Puffer' ist ein Puffer, wie er mit PUT verwendet wird. Wird 'Puffer' ausgelassen, so liest FreeBASIC direkt vom Bildschirm.
- 'Funktion' gibt an, welche Koordinate zurückgegeben werden soll.
Wenn die Koordinaten (Syntax A) außerhalb des aktuellen Clipping-Bereichs liegen, gibt POINT -1 zurück. Achtung: In einem TrueColor-Screenmodus kann auch ein weißer Pixel diesen Wert zurückgeben!
Andernfalls ist das Ergebnis eine Zahl im Format, das auch bei COLOR verwendet wird.
Wenn POINT mit nur einem Parameter aufgerufen wird (Syntax B), wird die aktuelle Grafikcursorposition ausgegeben; der zurückgegebene Wert hängt von 'Funktion' ab:
0 | aktuelle physische X-Koordinate |
1 | aktuelle physische Y-Koordinate |
2 | aktuelle X-Bildschirmkoordinate. Wenn WINDOW nicht eingesetzt wurde, ist das Ergebnis dasselbe wie für POINT(0). |
3 | aktuelle Y-Bildschirmkoordinate. Wenn WINDOW nicht eingesetzt wurde, ist das Ergebnis dasselbe wie für POINT(1). |
Beispiel:
'Grafikfenster erstellen (500x200 Pixel mit 32bit Farbtiefe)
ScreenRes 500, 200, 32
'Hintergrundfarbe (rot) einstellen und einfärben
Dim As Integer farbe = &HFF0000
Color ,farbe
Cls
Print "Die Hintergrundfarbe wurde auf den Wert &H" & Hex(farbe) & " gestellt"
Print "Point gibt den Wert &H" & Hex(Point(10, 10)) & " zurueck"
Print "Point mit Funktionswert '0' ergibt: " & Point(0)
Sleep
Wie man in einem Hi- oder Truecolor-Modus die von POINT zurückgegebene Farbe auswerten und interpretieren kann, wird in einem anderen Codebeispiel verraten.
Hinweis: POINT und seine Gegenfunktion PSET (Grafik) sind aufgrund der internen Berechnungen und Prüfungen sehr langsam. Wenn Sie stattdessen mithilfe von IMAGEINFO und SCREENINFO/SCREENPTR die Speicheradresse selbst bestimmen und PEEK verwenden, können Sie eine viel bessere Performance erzielen. Mit ASM ist eine noch bessere Geschwindigkeitssteigerung möglich.
Unterschiede zu QB:
- 'Puffer' ist neu in FreeBASIC
- In allen Bildschirm-Modi ab 15-Bit Farbtiefe gibt FreeBASIC einen 32-Bit RGB-Wert zurück.
Siehe auch:
PSET, PMAP, COLOR (Anweisung), Grafik