A shape is a class of data for which move
and
draw
operations can be drawn.
The teachpack arrow.ss
implements controller for moving
shapes across a canvass. It provides three operations:
Example:
;; A shape is a structure: ;; (make-posn num num) ;; RAD : the radius of the simple disk moving across a canvas (define RAD 10) ;; move : shape number -> shape or false ;; to move a shape by delta according to translate ;; effect: to redraw it (define (move sh delta) (cond [(and (clear-solid-disk sh RAD) (draw-solid-disk (translate sh delta) RAD)) (translate sh delta)] [else false])) ;; translate : shape number -> shape ;; to translate a shape by delta in the x direction (define (translate sh delta) (make-posn (+ (posn-x sh) delta) (posn-y sh))) ;; draw-it : shape -> true ;; to draw a shape on the canvas: a disk with radius (define (draw-it sh) (draw-solid-disk sh RAD)) ;; TESTS: ;; this creates the canvas (start 100 50) ;; this creates the controller GUI (control-left-right (make-posn 10 20) 10 move draw-it)