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