IsInsideStroke()

Syntax

Ergebnis = IsInsideStroke(x.d, y.d, Breite.d [, Flags [, KoordinatenSystem]])
Beschreibung
Überprüft, ob sich die angegebenen Koordinaten innerhalb einer Fläche befinden, in die durch einen Aufruf von StrokePath() gezeichnet wird.

Parameter

x.d, y.d Geben die Koordinaten des zu testenden Punktes an.
Breite.d Gibt die für den Test zu verwendende Linienbreite an.
Flags (optional) Mögliche Flags für die Linieneigenschaften, wie bei der StrokePath() Funktion beschrieben.
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

Anmerkungen

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

Rückgabewert

Gibt einen Wert ungleich Null zurück, wenn der Punkt innerhalb der Linie liegt, und Null wenn nicht.

Beispiel

  ; Dieses Beispiel verwendet die IsInsideStroke() Funktion, um die Figur in grüner Farbe
  ; auszufüllen, während sich die Maus auf ihrem Umriss 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 Pfades
      
      If IsInsideStroke(x, y, 20, #PB_Path_Default, #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
      
      StrokePath(20)                                      ; Ziehen/zeichnen 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

IsInsidePath(), StrokePath(), ResetPath()

Unterstützte OS

Alle

<- IsInsidePath() - VectorDrawing Inhaltsverzeichnis - IsPathEmpty() ->