2
; Inspired by this thread:
3
; http://www.mail-archive.com/users@racket-lang.org/msg06079.html
14
(require (only-in picturing-programs
29
;; generate an expression of depth i
30
(define (generate-expression i)
32
(let ([sub-expr (generate-expression (sub1 i))])
35
[(0) (lambda (x y) (sinpi (sub-expr x y)))]
36
[(1) (lambda (x y) (cospi (sub-expr x y)))])]
37
[(1) (let([sub-expr2 (generate-expression (sub1 i))])
44
(sub-expr2 x y)))]))]))
46
[(0) (lambda (x y) x)]
47
[(1) (lambda (x y) y)])))
49
(define (range-interpolator from-min from-max to-min to-max)
52
(* (/ (- to-max to-min)
53
(- from-max from-min))
57
;(set-page-numbers-visible! #f)
62
(define scale/x (/ client-w width))
63
(define scale/y (/ client-h height))
65
(define (color-from-expression expr)
66
(let ([x-interpolator (range-interpolator 0 (sub1 width) -1 1)]
67
[y-interpolator (range-interpolator 0 (sub1 height) -1 1)]
68
[output-interpolator (range-interpolator -1 1 0 255)])
72
(expr (x-interpolator x)
73
(y-interpolator y)))))))
76
(let ([text (bt (format "~a" n))])
77
(colorize (scale/improve-new-text text (/ (* 0.8 client-h) (pict-height text))) "white")))
79
(define (generate-slide n image)
92
(for/list ([i (in-range 10)])
96
(color-from-expression (generate-expression 5))
97
(color-from-expression (generate-expression 6))
98
(color-from-expression (generate-expression 7)))))
100
(for ([img (in-list images)]
102
(generate-slide i img))
106
; -------------- "interesting image" ------------------
110
(cospi (* (avg (sinpi y) x) (cospi (* x y))))))
112
(let ([cfe (color-from-expression expr)])