Last active
November 22, 2016 21:06
-
-
Save AlexanderOtavka/e9d917d623ada459d56b90d4b4cbe0e8 to your computer and use it in GitHub Desktop.
Chihuligans - Grinnell CSC 151 Final Project.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket | |
(define and-rec | |
(lambda (lst) | |
(if (null? lst) | |
#t | |
(and (car lst) (and-rec (cdr lst)))))) | |
(define rect | |
(lambda (x y width height) | |
(list 'rect x y width height))) | |
(define rect? | |
(lambda (object) | |
(and (list? object) | |
(= (length object) 5) | |
(eq? (car object) 'rect) | |
(and-rec (map number? (cdr object))) | |
(and-rec (map (r-s > 0) (cdddr object)))))) | |
(define rect-x | |
(lambda (rectangle) | |
(when (not (rect? rectangle)) | |
(error "rect-x: expected rect?, got " rectangle)) | |
(list-ref rectangle 1))) | |
(define rect-y | |
(lambda (rectangle) | |
(when (not (rect? rectangle)) | |
(error "rect-y: expected rect?, got " rectangle)) | |
(list-ref rectangle 2))) | |
(define rect-width | |
(lambda (rectangle) | |
(when (not (rect? rectangle)) | |
(error "rect-width: expected rect?, got " rectangle)) | |
(list-ref rectangle 3))) | |
(define rect-height | |
(lambda (rectangle) | |
(when (not (rect? rectangle)) | |
(error "rect-height: expected rect?, got " rectangle)) | |
(list-ref rectangle 4))) | |
(define chihuligans | |
(lambda (n width height) | |
(random-seed n) | |
(let ([img (image-new width height)] | |
[rectangles (generate-rectangles n width height)]) | |
(image-compute (get-gradient-function n) img) | |
(draw-borders rectangles n img) | |
(draw-splats rectangles n img) | |
(draw-sketches rectangles n img) | |
squares))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment