#lang racket (require "hw2.rkt") (define sierpinski-prg '( (define STYLE "stroke:black;stroke-width:3;") (define MAX-ITER 9) (define (triangle x1 y1 x2 y2 x3 y3 style) (line x1 y1 x2 y2 style) (line x2 y2 x3 y3 style) (line x3 y3 x1 y1 style) ) (define (sierpinski x1 y1 x2 y2 x3 y3 iter) (when (< iter MAX-ITER) (triangle x1 y1 x2 y2 x3 y3 STYLE) (sierpinski x2 y2 (/ (+ x2 x3) 2) (/ (+ y2 y3) 2) (/ (+ x1 x2) 2) (/ (+ y1 y2) 2) (+ iter 1)) (sierpinski (/ (+ x2 x3) 2) (/ (+ y2 y3) 2) x3 y3 (/ (+ x1 x3) 2) (/ (+ y1 y3) 2) (+ iter 1)) (sierpinski (/ (+ x1 x2) 2) (/ (+ y1 y2) 2) (/ (+ x1 x3) 2) (/ (+ y1 y3) 2) x1 y1 (+ iter 1)) ) ) )) (display (execute 400 400 sierpinski-prg '(sierpinski 200 0 0 400 400 400 0)))