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