IsInsidePath()
Syntaxe
Resultat = IsInsidePath(X.d, Y.d [, CoordonneeSysteme])Description
Teste si les coordonnées données sont dans une figure fermée dans le chemin du dessin vectoriel en cours.
Arguments
X.d, Y.d Les coordonnées du point à tester. CoordonneeSysteme (optionnel) Indique le système de coordonnées à utiliser.
Peut être l'une des valeurs suivantes:#PB_Coordinate_Device: Le système de coordonnées du dispositif de sortie #PB_Coordinate_Output: Le système de coordonnées comme il a été créé avec la fonction de sortie de dessin #PB_Coordinate_User : Le système de coordonnées des points du chemin de dessin (Par défaut) #PB_Coordinate_Source: Le système de coordonnées de la source du dessin vectoriel
Valeur de retour
Renvoie une valeur non nulle si le point est dans le chemin, zéro sinon.
Remarques
Cette fonction renvoie une valeur non nulle si le point donné serait comblé par un appel à FillPath().
Voir l'aperçu de VectorDrawing pour une introduction aux différents systèmes de coordonnées.
Exemple
; Cet exemple utilise la fonction IsInsidePath() pour colorer la figure en vert ; tant que la souris est à l'intérieur du chemin, en bleu sinon ; Procedure Draw() x = GetGadgetAttribute(0, #PB_Canvas_MouseX) y = GetGadgetAttribute(0, #PB_Canvas_MouseY) If StartVectorDrawing(CanvasVectorOutput(0)) VectorSourceColor(RGBA(255, 255, 255, 255)) ; efface le contenu précédent FillVectorOutput() AddPathEllipse(200, 100, 150, 75) ; prépare le chemin If IsInsidePath(x, y, #PB_Coordinate_Device) ; vérifie si la souris est à l'intérieur VectorSourceColor(RGBA(0, 255, 0, 255)) Else VectorSourceColor(RGBA(0, 0, 255, 255)) EndIf FillPath() ; remplit le chemin 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
Voir aussi
IsInsideStroke(), FillPath(), ClosePath(), ResetPath()
OS Supportés
Tous