Sierpinski Assignment

From CSE425S Wiki
Jump to navigation Jump to search

Motivation

We will recursively generate some images with the Racket Image Library.

Code To Investigate

placement

beside
above
overlay overlay/align
rotate

shapes

triangle
circle
square
rectangle
frame

Spacer

; fully transparent rectangle
(define (spacer-rect w h)
  (rectangle w h "outline" (color 0 0 0 0)))

; fully transparent image the size of img
(define (spacer-image img)
  (spacer-rect (image-width img) (image-height img)))

Sierpiński

file: src/main/racket/sierpinski_and_cantor/sierpinski.rkt Racket-logo.svg
functions: sierpinski-triangle
sierpinski-carpet

Triangle

Sierpiński Triangle

(define (sierpinski-triangle side-length n)
  (raise 'not-yet-implemented #t))
Sierpinski-triangle 0.svg Sierpinski-triangle 1.svg Sierpinski-triangle 2.svg Sierpinski-triangle 3.svg Sierpinski-triangle 4.svg
n=0 n=1 n=2 n=3 n=4

Note: this has a remarkably clean solution. It is almost as if the Racket Image Library was created to build the Sierpiński Triangle.

Carpet

(define (sierpinski-carpet side-length n)
  (raise 'not-yet-implemented #t))
Sierpinski-carpet 0.svg Sierpinski-carpet 1.svg Sierpinski-carpet 2.svg Sierpinski-carpet 3.svg Sierpinski-carpet 4.svg.png
n=0 n=1 n=2 n=3 n=4

Cantor

Cantor set

file: src/main/racket/sierpinski_and_cantor/cantor.rkt Racket-logo.svg
functions: cantor-stool

Stool

(define (cantor-stool width height n)
  (raise 'not-yet-implemented #t))
Cantor-stool 0.svg Cantor-stool 1.svg Cantor-stool 2.svg Cantor-stool 3.svg Cantor-stool 4.svg
n=0 n=1 n=2 n=3 n=4


Note: you have been provided with a function which draws a red rectangle outlined in blue.

(define (brick w h)
 (overlay
  (rectangle w h "outline" "blue")
  (rectangle w h "solid" "red")
  )
 )