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
  EndProcedure
Der 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

<- CustomFilterCallback() - 2DDrawing Inhaltsverzeichnis - DrawAlphaImage() ->