Par exemple, en deplacant la souris a la coordonnée x = 20, le Plot(x, y, RGB(m,m,m)) soit egale a Plot(x, y, RGB(20,20,20)).
Je me demande si c'est pas un peu crétin pour effet ?
Mais bon, pourquoi pas.
La meilleurs méthode est de passer par le canvas qui est riche en fonctionnalités et en retour d’événements.
Code : Tout sélectionner
#PB_EventType_MouseEnter : Le curseur de la souris est entré dans le gadget
#PB_EventType_MouseLeave : Le curseur de la souris est sorti du gadget
#PB_EventType_MouseMove : Le curseur de la souris a bougé
#PB_EventType_MouseWheel(*) : La molette de la souris a bougé
#PB_EventType_LeftButtonDown : Le bouton gauche de la souris a été pressé
#PB_EventType_LeftButtonUp : Le bouton gauche de la souris a été relâché
#PB_EventType_LeftClick : Un clic avec le bouton gauche de la souris
#PB_EventType_LeftDoubleClick : Un double-clic avec le bouton gauche de la souris
#PB_EventType_RightButtonDown : Le bouton droit de la souris a été pressé
#PB_EventType_RightButtonUp : Le bouton droit de la souris a été relâché
#PB_EventType_RightClick : Un clic avec le bouton droit de la souris
#PB_EventType_RightDoubleClick: Un double-clic avec le bouton droit de la souris
#PB_EventType_MiddleButtonDown: Le bouton central de la souris a été pressé
#PB_EventType_MiddleButtonUp : Le bouton central de la souris a été relâché
#PB_EventType_Focus : Le gadget a obtenu le focus clavier
#PB_EventType_LostFocus : Le gadget a perdu le focus clavier
#PB_EventType_KeyDown(*) : Une touche clavier a été pressée
#PB_EventType_KeyUp(*) : Une touche clavier a été relâchée
#PB_EventType_Input(*) : Du texte a été entré dans le gadget
Et maintenant le code documenté pas à pas.
Code : Tout sélectionner
EnableExplicit
Enumeration Window
#mf
EndEnumeration
Enumeration Gadgets
#mfImage
EndEnumeration
Global image = CreateImage(#PB_Any, 200, 200) ;Création de l'image
Global x, y ;Coordonnées x et y
Global event ;Evenement
;Création d'une fenetre (utilise des énumérations c'est bien plus lisible que des numéros)
If OpenWindow(#mf, 0, 0, 200, 200, "Plot Exemple", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
;Container recevant l'image
CanvasGadget(#mfImage, 0, 0, 200, 200)
;Affichage de l'image vierge créee précédement
SetGadgetAttribute(#mfImage, #PB_Canvas_Image, ImageID(Image))
;Pour le fun, affichage d'un curseur personnalisé
SetGadgetAttribute(#mfImage, #PB_Canvas_Cursor , #PB_Cursor_Cross)
EndIf
Repeat
Event = WaitWindowEvent()
Select EventType()
Case #PB_EventType_MouseMove ;Le curseur survole le canvas
;Quel est la position du curseur
x = GetGadgetAttribute(#mfImage, #PB_Canvas_MouseX)
y = GetGadgetAttribute(#mfImage, #PB_Canvas_MouseY)
;SPH a dit : en deplacant la souris a la coordonnée x = 20,
;le Plot(x, y, RGB(m,m,m)) soit egale a Plot(x, y, RGB(20,20,20)).
StartDrawing(ImageOutput(image))
Plot(x, y, RGB(x, x, x))
StopDrawing()
;Affichage de l'image
SetGadgetAttribute(#mfImage, #PB_Canvas_Image, ImageID(Image))
EndSelect
Until Event = #PB_Event_CloseWindow
A toi les joies du dessin sur un canvas.