#include #include /* Afficher un point a l'ecran */ void PaintPoint(Point p) { DrawLine(p.h,p.v,p.h,p.v); } /* A completer, centre est le centre du cercle, r2 est le carre du rayon */ void cercle(Point centre, int r2) { ..... } void main(void) { Point p,q; int r,old; InitQuickDraw(); for (;;) { /* saisie d'un cercle */ /* saisir le centre */ WaitClickDown(); GetMouse(&p); /* le mode Xor permet d'effacer en redessinant */ PenMode(patXor); PenPat(gray); do { /* saisie du rayon par un point du cercle */ GetMouse(&q); old = r = (p.h-q.h)*(p.h-q.h)+(p.v-q.v)*(p.v-q.v); cercle(p,r); /* dessiner le cercle en gris */ /* eviter les clignotements */ do { /* tant que le rayon ne change pas, ne rien faire */ GetMouse(&q); r = (p.h-q.h)*(p.h-q.h)+(p.v-q.v)*(p.v-q.v); } while ((old == r) && Button()); cercle(p,old); /* effacer le cercle */ } while (Button()); /* le bouton est lache */ /* dessiner le cercle saisi */ PenMode(patCopy); PenPat(black); cercle(p,r); } }