;;draw-person posn number symbol(color) symbol(color) -> boolean boolean
;;
;;Consumes the position(posn) of the head of the guy, his body size and the color of his clothes to create him.
;;
;;Before using function, must call function "start" by the following rules...(start number1 number2) wherein number1 is equal to the
;;x maximum or width of the window in which the drawing will appear while number2 is the y maximum or the height of the window that
;;the drawing will appear in.
;;
;;Unfortunately, since for function "draw-circle" the size needs to be an integer, and my proportions require division by 16 at points, all size inputs
;;must be divisible by 16. Have fun!
;;
;;test (assuming start has been called) - (draw-person (make-posn 150 150) 50 'black 'black 'black) - > false (no drawing)
;;test (assuming start has been called) - (draw-person (make-posn 150 150) 64 'black 'black 'black) - > true true (creates drawing)
(define (draw-person pos size shirt-color pants-color shoes-color)
  (and
   ;;Creates circle for head
   (draw-circle pos (/ size 2) 'black)
   ;;Following lines create eye glasses for this person
   (draw-circle (make-posn (- (posn-x pos) (/ size 4)) (- (posn-y pos) (/ size 4))) (/ size 8) 'black)
   (draw-circle (make-posn (+ (posn-x pos) (/ size 4)) (- (posn-y pos) (/ size 4))) (/ size 8) 'black)
   ;;Creates 1st bar of glasses
   (draw-solid-line 
    (make-posn (- (posn-x pos) (* size .375)) (- (posn-y pos) (/ size 4))) 
    (make-posn (- (posn-x pos) (/ size 2)) (- (posn-y pos) (/ size 4)))
    'black)
   ;;Creates 2nd Bar of glasses
   (draw-solid-line
    (make-posn (+ (posn-x pos) (/ (* size 3) 8)) (- (posn-y pos) (/ size 4)))
    (make-posn (+ (posn-x pos) (/ size 2)) (- (posn-y pos) (/ size 4)))
    'black)
   ;;Creates bar connecting glasses
   (draw-solid-line
    (make-posn (- (posn-x pos) (/ size 8)) (- (posn-y pos) (/ size 4)))
    (make-posn (+ (posn-x pos) (/ size 8)) (- (posn-y pos) (/ size 4)))
    'black)
   ;;Creates pupils inside glasses
   (draw-solid-disk (make-posn (- (posn-x pos) (/ size 4)) (- (posn-y pos) (/ size 4))) (/ size 16) 'black)
   (draw-solid-disk (make-posn (+ (posn-x pos) (/ size 4)) (- (posn-y pos) (/ size 4))) (/ size 16) 'black)
   ;;Creates mouth
   (draw-circle (make-posn (posn-x pos) (+ (posn-y pos) (/ size 4))) (/ size 8) 'pink) 
   ;;Creates T-shirt
   (draw-solid-rect (make-posn (- (posn-x pos) (/ size 2)) (+ (posn-y pos) (/ size 2))) size (* size 2) shirt-color)
   (draw-solid-rect (make-posn (- (posn-x pos) size) (+ (posn-y pos) (/ size 2))) (* size 2) (* size .75) shirt-color)
   ;;Creates hair
   (draw-solid-rect (make-posn (- (posn-x pos) (/ size 4)) (- (posn-y pos) (/ size 2))) (/ size 2) (/ size 8) 'brown)
   ;;Creates pants
   (draw-solid-rect (make-posn (- (posn-x pos) (/ size 2)) (+ (posn-y pos) (* size 2.5))) size (* size 2) pants-color)
   ;;Creates shoes
   (draw-solid-rect (make-posn (- (posn-x pos) (* size .75)) (+ (posn-y pos) (* size 4.5))) (* size 1.5) (/ size 2) shoes-color)
   ;;Creates right arm
   (draw-solid-line
    (make-posn (- (posn-x pos) size) (+ (posn-y pos) (* size .75)))
    (make-posn (- (posn-x pos) (* size 1.5)) (+ (posn-y pos) (* size .75)))
    'black)
   (draw-solid-line
    (make-posn (- (posn-x pos) size) (+ (posn-y pos) size))
    (make-posn (- (posn-x pos) (* size 1.5)) (+ (posn-y pos) size))
    'black)
   ;;Creates left arm
   (draw-solid-line
    (make-posn (+ (posn-x pos) size) (+ (posn-y pos) (* size .75)))
    (make-posn (+ (posn-x pos) (* size 1.5)) (+ (posn-y pos) (* size .75)))
    'black)
   (draw-solid-line
    (make-posn (+ (posn-x pos) size) (+ (posn-y pos) size))
    (make-posn (+ (posn-x pos) (* size 1.5)) (+ (posn-y pos) size))
    'black)
   ;;Creates hands (hands are circles to save time)
   ;;X shift discovered by doing a^2+b^2=c^2 wherein a=.125 and c=.25, then value was added to 1.5
   (draw-circle (make-posn (- (posn-x pos) (* size 1.7165)) (+ (posn-y pos) (* size .875))) (/ size 4) 'black)
   (draw-circle (make-posn (+ (posn-x pos) (* size 1.7165)) (+ (posn-y pos) (* size .875))) (/ size 4) 'black)
   ;;Outlines shirt
   (draw-solid-line
    (make-posn (- (posn-x pos) size) (+ (posn-y pos) (/ size 2)))
    (make-posn (+ (posn-x pos) size) (+ (posn-y pos) (/ size 2)))
    'black)
   (draw-solid-line
    (make-posn (- (posn-x pos) size) (+ (posn-y pos) (/ size 2)))
    (make-posn (- (posn-x pos) size) (+ (posn-y pos) (* size 1.25)))
    'black)
   (draw-solid-line
    (make-posn (+ (posn-x pos) size) (+ (posn-y pos) (/ size 2)))
    (make-posn (+ (posn-x pos) size) (+ (posn-y pos) (* size 1.25)))
    'black)
   (draw-solid-line
    (make-posn (- (posn-x pos) size) (+ (posn-y pos) (* size 1.25)))
    (make-posn (- (posn-x pos) (/ size 2)) (+ (posn-y pos) (* size 1.25)))
    'black)
   (draw-solid-line
    (make-posn (+ (posn-x pos) (/ size 2)) (+ (posn-y pos) (* size 1.25)))
    (make-posn (+ (posn-x pos) size) (+ (posn-y pos) (* size 1.25)))
    'black)
   ;;Outlines left side of pants and shirt
   (draw-solid-line
    (make-posn (- (posn-x pos) (/ size 2)) (+ (posn-y pos) (* size 1.25)))
    (make-posn (- (posn-x pos) (/ size 2)) (+ (posn-y pos) (* size 4.5)))
    'black)
   ;;Outlines right side of pants and shirt
   (draw-solid-line
    (make-posn (+ (posn-x pos) (/ size 2)) (+ (posn-y pos) (* size 1.25)))
    (make-posn (+ (posn-x pos) (/ size 2)) (+ (posn-y pos) (* size 4.5)))
    'black)
   ;;Signifies "belt"
   (draw-solid-line
    (make-posn (- (posn-x pos) (/ size 2)) (+ (posn-y pos) (* size 2.5)))
    (make-posn (+ (posn-x pos) (/ size 2)) (+ (posn-y pos) (* size 2.5)))
    'black)
   ;;line down middle of pants and seperating shoes
   (draw-solid-line
    (make-posn (posn-x pos) (+ (posn-y pos) (* size 3)))
    (make-posn (posn-x pos) (+ (posn-y pos) (* size 5)))
    'black)
   ;;outline of shoes
   (draw-solid-line
    (make-posn (- (posn-x pos) (* size .75)) (+ (posn-y pos) (* size 4.5)))
    (make-posn (+ (posn-x pos) (* size .75)) (+ (posn-y pos) (* size 4.5)))
    'black)
   (draw-solid-line 
    (make-posn (- (posn-x pos) (* size .75)) (+ (posn-y pos) (* size 4.5)))
    (make-posn (- (posn-x pos) (* size .75)) (+ (posn-y pos) (* size 5)))
    'black)
   (draw-solid-line
    (make-posn (+ (posn-x pos) (* size .75)) (+ (posn-y pos) (* size 4.5)))
    (make-posn (+ (posn-x pos) (* size .75)) (+ (posn-y pos) (* size 5)))
    'black)
   (draw-solid-line
    (make-posn (- (posn-x pos) (* size .75)) (+ (posn-y pos) (* size 5)))
    (make-posn (+ (posn-x pos) (* size .75)) (+ (posn-y pos) (* size 5)))
    'black)))
;(start 300 600)
;(draw-person (make-posn 150 150) 32 'blue 'red 'gray)