Style de page


phpMyVisites | Open source web analytics phpMyVisites

Dessinons avec un canva.

Voici un petit programme qui permet de tracer des droites dans un canva:
# Création des widget:	
button .eff -text "Effacer" -command {.canv delete all}
canvas .canv -width 200 -height 200 -bg white
pack .eff .canv


bind .canv  {buttonPress %x %y}
bind .canv  {buttonDeplace %x %y}


proc buttonPress {x y} {
global dessin
  set dessin(x0) $x
    set dessin(y0) $y
    set dessin(tag) [.canv create line $x $y $x $y -fill blue ]
}

proc buttonDeplace {x y} {
global dessin
  .canv coords $dessin(tag) $dessin(x0) $dessin(y0) $x $y
} 
fichier source

Explications:

Lorsqu'on presse le bouton gauche de la souris (dans le canva) la fonction buttonPress crée une droite de longueur nulle situé au point (x0,y0) ou se trouve alors le pointeur.
Si ensuite on déplace le pointeur de la souris en maintenant le bouton enfoncé, la fonction buttonDeplace modifie la longueur de la droite: celle-ci va de la position d'origine (x0,y0) à la position actuelle du pointeur.

Une version améliorée: source