Parameterized Flowers Example Code
(define (flower petal-color)
(separator
; stem
(color (vec3 0 .6 0))
(define i 0)
(while (< i 10)
(separator
(rotate 90 (vec3 1 0 0))
(cylinder 'radius .1)
)
(translate (vec3 0 1 0))
(rotate 2 (vec3 0 0 1))
(scale (vec3 .9 1 .9))
(set! i (+ 1 i))
)
; center
(translate (vec3 0 -1 0))
(scale (vec3 1.75 1 1.75))
(color (vec3 1 1 0))
(sphere 'thetamax 180)
(translate (vec3 0 -.25 0))
; flower
(color petal-color)
(define i 0)
(while (< i 12)
(rotate 30 (vec3 0 1 0))
; petal
(separator
(translate (vec3 0 0 .75))
(scale (vec3 1 1 2))
(translate (vec3 0 0 1))
(rotate 30 (vec3 0 0 1))
(sphere 'thetamax 120)
)
(set! i (+ i 1))
)
)
)
(define (flowers)
(define i 0)
(while (< i 50)
(separator
(translate (vec3 (- (* (rand) 30) 15) 0 (- (* (rand) 30) 15)))
(rotate (* (rand) 360) (vec3 0 1 0))
(flower (vec3 (rand) (rand) (rand)))
(set! i (+ i 1))
)))
Return to Parameterization
mrl