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