CustomGradient()
Syntax
CustomGradient(@GradientCallback())Beschreibung
Weist dem Farbverlauf eine benutzerdefinierte Form zu, definiert durch die angegebene Callback-Prozedur.
Parameter
Der Callback muss die folgende Form haben:Procedure.f GradientCallback(x, y) ; ; Gibt einen Wert zwischen 0.0 und 1.0 zurück, um den Farbverlauf für die x/y Position zu definieren. ; ProcedureReturn 1.0 EndProcedureDer Callback wird für jeden Pixel aufgerufen, der Teil der Zeichenoperation ist. Der Callback muss einen Wert zwischen 0.0 und 1.0 (keinen Farbwert) zurückgeben, um den Farbverlaufs-Wert an der angegebenen Position zu definieren.
Standmäßig repräsentiert der Wert 0.0 die aktuelle Hintergrundfarbe und der Wert 1.0 repräsentiert die aktuelle Zeichenfarbe. Zusätzliche Farben können zum Farbverlauf mit dem Befehl GradientColor() hinzugefügt werden.
Dieser Callback wird sehr oft aufgerufen (für jeden zu zeichnenden Pixel), weshalb er sehr klein und schnell sein sollte, um nicht zu große Auswirkungen auf die Zeichen-Performanz zu haben.
Hinweis: Dieser Befehl hat nur eine Wirkung bei ImageOutput(). Der Farbverlauf wirkt sich nur auf die Zeichenbefehle aus, wenn #PB_2DDrawing_Gradient mit dem DrawingMode() Befehle gesetzt wird.Beispiel:
Procedure.f GradientCallback(x, y) ProcedureReturn Sin(x * 0.1) * Sin(y * 0.1) ; wird zwischen 0 und 1 liegen EndProcedure If OpenWindow(0, 0, 0, 400, 200, "2DDrawing Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) If CreateImage(0, 400, 200) And StartDrawing(ImageOutput(0)) Box(0, 0, 400, 200, $FFFFFF) DrawingMode(#PB_2DDrawing_Gradient) BackColor($00FFFF) FrontColor($FF0000) CustomGradient(@GradientCallback()) Circle(100, 100, 100) Circle(300, 100, 100) StopDrawing() ImageGadget(0, 0, 0, 400, 200, ImageID(0)) EndIf Repeat Event = WaitWindowEvent() Until Event = #PB_Event_CloseWindow EndIf
Unterstützte OS
Alle