;;; File: ;;; procedures-lab.scm ;;; Authors: ;;; Janet Davis ;;; Samuel A. Rebelsky ;;; Jerod Weinman ;;; YOUR NAME HERE ;;; Summary: ;;; Code for the lab entitled "Writing Your Own Procedures" ; +---------------+------------------------------------------------------------- ; | Some drawings | ; +---------------+ (define black-circle (drawing-hshift (drawing-vshift (drawing-scale drawing-unit-circle 50) 40) 30)) (define purple-ellipse (drawing-vshift (drawing-hshift (drawing-vscale (drawing-hscale (drawing-recolor drawing-unit-circle "purple") 50) 25) 30) 10)) (define blue-i (drawing-recolor (drawing-group (drawing-hshift (drawing-vshift (drawing-scale drawing-unit-circle 8) 4) 4) (drawing-hshift (drawing-vshift (drawing-hscale (drawing-vscale drawing-unit-square 32) 8) 28) 4)) "blue")) (define red-eye (drawing-hshift (drawing-vshift (drawing-group (drawing-hscale (drawing-vscale (drawing-recolor drawing-unit-circle "darkgrey") 24) 64) (drawing-hscale (drawing-vscale (drawing-recolor drawing-unit-circle "white") 20) 60) (drawing-hscale (drawing-vscale (drawing-recolor drawing-unit-circle "red") 20) 16)) 12) 32)) ; +----------------------+------------------------------------------------------ ; | Drawing transformers | ; +----------------------+ (define variant-1 (lambda (drawing) (drawing-hshift (drawing-vshift (drawing-scale drawing 1.1) 20) 15))) (define variant-pair-1 (lambda (drawing) (drawing-group drawing (variant-1 drawing)))) (define add-right-neighbor (lambda (drawing) (drawing-group drawing (drawing-hshift drawing (drawing-width drawing))))) ; +----------------------+------------------------------------------------------ ; | Drawing constructors | ; +----------------------+ (define circle (lambda (radius x-center y-center) (drawing-hshift (drawing-vshift (drawing-scale drawing-unit-circle (* 2 radius)) y-center) x-center)))