ClipPath()

Syntax

ClipPath([Flags])
Beschreibung
Beschneidet (englisch "clip") die Vektorzeichnen-Ausgabe auf den vom aktuellen Vektorzeichnen-Pfad definierten Bereich. Spätere Zeichenoperationen werden sich nur auf Bereiche innerhalb des aktuellen Pfades auswirken. Das "Clipping" wird mit jedem Clipping kombiniert, das vorher bereits auf der Zeichenausgabe existierte.

Standardmäßig wird der Pfad nach dem Aufruf dieser Funktion zurückgesetzt. Dies kann durch entsprechende Flags verhindert werden.

Parameter

Flags (optional) Dies kann einer der folgenden Werte sein:
  #PB_Path_Default     : Kein spezielles Verhalten  (Standardwert)
  #PB_Path_Preserve    : Den Pfad nach dieser Funktion nicht zurücksetzen

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Anmerkungen

Es gibt keine "UnclipPath()" Funktion, also zum "Rückgängig machen": Der Clipping-Bereich der Zeichenausgabe kann durch das Hinzufügen weiterer Beschneidung (Clipping-Bereiche) nur kleiner, aber nicht wieder größer gemacht werden.

Der Clipping-Bereich kann jedoch durch die Verwendung der SaveVectorState() und RestoreVectorState() Funktionen gespeichert und wiederhergestellt werden. Um also temporäres Clipping auf die Zeichenausgabe anzuwenden, speichern Sie zuerst den Zeichenstatus und stellen diesen später wieder her, um auf die ursprünglichen Clipping-Bereiche zurück zu wechseln.

Beispiel

  If OpenWindow(0, 0, 0, 400, 200, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CanvasGadget(0, 0, 0, 400, 200)
    LoadFont(0, "Times New Roman", 20, #PB_Font_Bold)

    If StartVectorDrawing(CanvasVectorOutput(0))
    
      ; Einstellen eines komplexen Clipping-Pfades mit verschachtelten Ellipsen
      ; (jede Sekunde wird eine beschnitten / "clipped")
      For i = 10 To 150 Step 5
        AddPathEllipse(200, 100, 2*i, i)
      Next i
      ClipPath()
    
      ; Einigen Text mit diesem Clipping zeichnen
      VectorFont(FontID(0), 150)      
      VectorSourceColor(RGBA(255, 0, 0, 255))
      
      MovePathCursor(50, 25)
      DrawVectorText("Text")

      StopVectorDrawing()
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf

Siehe auch

Unterstützte OS

Alle

<- BeginVectorLayer() - VectorDrawing Inhaltsverzeichnis - ClosePath() ->