IsInsidePath()

Syntax

Ergebnis = IsInsidePath(x.d, y.d [, KoordinatenSystem])
Beschreibung
Überprüft, ob die angegebenen Koordinaten innerhalb einer geschlossenen Figur im aktuellen Vektorzeichnen-Pfad liegen. Das heißt, diese Funktion gibt nicht Null zurück, wenn der angegebene Punkt durch einen Aufruf von FillPath() ausgefüllt werden würde.

Parameter

x.d, y.d Geben die Koordinaten des zu testenden Punktes an.
KoordinatenSystem (optional) Gibt das Koordinatensystem für den zu testenden Punkt an. Dies kann einer der folgenden Werte sein:
  #PB_Coordinate_Device: Das Koordinatensystem der Ausgabe-Einheit
  #PB_Coordinate_Output: Das Koordinatensystem, wie es mit der Zeichenausgabe-Funktion erstellt wurde
  #PB_Coordinate_User  : Das Koordinatensystem für Punkte im Zeichenpfad  (Standard)
  #PB_Coordinate_Source: Das Koordinatensystem für die Vektorzeichnen-Quelle

Rückgabewert

Gibt einen Wert ungleich Null zurück, wenn der Punkt sich innerhalb des Pfades befindet, und Null wenn nicht.

Anmerkungen

Siehe den Vektorzeichnen Überblick für eine Einführung in die verschiedenen Koordinatensysteme.

Beispiel

  
  ; Dieses Beispiel verwendet die IsInsidePath() Funktion, um die Figur in grün auszufüllen
  ; während sich die Maus innerhalb befindet, und andernfalls in blau.
  ;
  Procedure Draw()    
    x = GetGadgetAttribute(0, #PB_Canvas_MouseX)
    y = GetGadgetAttribute(0, #PB_Canvas_MouseY)
  
    If StartVectorDrawing(CanvasVectorOutput(0))
      VectorSourceColor(RGBA(255, 255, 255, 255))   ; Löschen des vorherigen Inhalts
      FillVectorOutput()
      
      AddPathEllipse(200, 100, 150, 75)             ; Vorbereiten des Pfads
      
      If IsInsidePath(x, y, #PB_Coordinate_Device)  ; Überprüfen, ob die Maus sich innerhalb befindet
        VectorSourceColor(RGBA(0, 255, 0, 255))
      Else
        VectorSourceColor(RGBA(0, 0, 255, 255))
      EndIf
      
      FillPath()                                    ; Ausfüllen des Pfades
      StopVectorDrawing()
    EndIf      
  EndProcedure
  
  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)
    Draw()
    
    Repeat
      Event = WaitWindowEvent()
      
      If Event = #PB_Event_Gadget And EventGadget() = 0 And EventType() = #PB_EventType_MouseMove
        Draw()
      EndIf
      
    Until Event = #PB_Event_CloseWindow
  EndIf

Siehe auch

IsInsideStroke(), FillPath(), ClosePath(), ResetPath()

Unterstützte OS

Alle

<- FlipCoordinatesY() - VectorDrawing Inhaltsverzeichnis - IsInsideStroke() ->