;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: Just your normal Starry night ;;; ;;; Description: ;;; From the forest dark ;;; The recursive trees look up ;;; To a starry night ;I didn't comment the code very well, so here's some ASCII DeNero to make up for it: ; `:/+oosyhdmmdyso+/. ; ./shyo/-``````...--/ohNNdy+-` ; -ohh+-` `..`.:yddhs+/. ; -sdh/.` ```-+yhho. ; `+hddhy+-` `.+so. ; .+ss+-.` -oo. ; .sdo:..` `:hs. ; .hy/-.` -hmo ; .dNo. .ym- ; `hh/` .hh ; `hd/` `/d/ ; `ymh:` ``..``` `` `+h ; -dh+.```` `..-:::::.`-:.` .y ; dMd-``.....-:+ssssoo+-.::-` .y` ; sNh.`....-:+ooshdyo/--//:.` ``..` `:h` ; -md. `.-/+oss/:/:::+ss+-` `.-:::.` .o/ ; dN/```./shhhhhysssyo+:.-:////////:-` `` `+o ; oNs``.:sdNNNNNNNmhsssyhhyssso+//////-..----` :d` ; `hm/`-ymNMMMMMMMMMMMMNmdhyo+/:-...-::::///:-` .yh ; .dd-:yhdmmNNMMMMMMMNmds/--.```.......--::///:. .ym+ ; :mmo+/:--:+sdNMMNNmy+/:----://:://////:::///:-` `.-::yNo ; /mhsyso+/--/ymNNmdy+//:--:oys- `..:/+++++/:. `..:++:-oNy ; sNmy/ohd+``-yNMmhs+/:--:smMd/`.::--/++oo++/-` .::-:++/-:ho ; `hNdhmNMy:.:smNhso+//:/oyddhsooo+++ooooo+++/-` `:/:.-/++:/h/ ; -mMMNNNNmdmNNmyo++////+yhdddhhyyyssooo+++++/:.``.////-.-++sd` ; oNMMMMMMMMMNdso++++++ooyhhdddhhyysooo++++o++/::/++//:../+dh ; `hMMMMMMMMMmyo++//+++ossyhhhhhhyssooooooo++++++/+/-..-//sm/ ; -dMMMMMMMNhso+////++oosyhhhhyysssoooo++o++++++++:-:++/+md` ; hMMMMMMNmhso+///////+oyhdhhhyyysooo+++++++++//++++++odNy ; hMMMMMMMNmhso+/+++///+shddhhyyysoo++++++++++//////+sdh/` ; `hMMMNMMMNdy+:-.-////+osydddhhyysso+++++++++++//::/yh/ ; `yNMMMMMNNdy+///////+oosssyhhhyyysso++++++++++/- `.-` ; +mNNNNNNNmmdyyso+++++++++++ossyyyso+++++//+//: ; `omNdhdmNNNmddmdysoo+++//:--/oyhhy+/++///////. ; /dmdhdmmdddddhyso+//-.`.-/+shdhs+/+++/////-` ; .yNNNNmhshmmmNds+:::://++ossyso//++////:. ; `omNMMNmmNmdhso++++++++++++o+///+///:-` ; :hNMMNNmmdhyssosooooo+//////////::. ; .+dMMMNdhhhyyyyysso++///////::-.` ; :dNMMNmmdhhyyyyso+/////::-.` ; `+dNNNmmdhyssssoo+///::-.` ; `omNNNmmdhysooo+//:-.` ; :sdmdhhhyso+/:-.` ` ; .:+oo++/:-` . ; ` ; ` ; ` ; ` ; .``` `..` ```````````` ```` `..`` `````````````````````` ` (define (draw) (define (draw_tree position length angle thickness divergence_ratio) (begin (setp position -200) (tree length angle thickness divergence_ratio))) ;Trees decrease in thickness as they branch, and their branches diverge (define (tree length angle thickness divergence_ratio) (begin (if (not (< thickness 2)) (pensize thickness)) (cond ((< length 2) 0) ((< length 7) (begin (pensize 2) (circle length))) (else (begin (fd (/ length 2)) (rt (/ angle 2)) (tree (/ length 2) (* (- angle) divergence_ratio) (- thickness 1) divergence_ratio) (lt (/ angle 2)) (bk (/ length 2)) (fd (/ length 4)) (rt (/ angle 1)) (tree (/ length 2) (* angle divergence_ratio) (- thickness 1) divergence_ratio) (lt (/ angle 1)) (bk (/ length 4)) (fd (/ length 3)) (lt (/ angle 1)) (tree (/ length (/ 3 2)) (* (- angle) divergence_ratio) (- thickness 1) divergence_ratio) (rt (/ angle 1)) (bk (/ length 3)) ) ) ) ) ) (start_drawing) (load_bg_pic 'bg.png) ;Patrick (penup) (setpos -500 -400) (pendown) (rt 90) (pensize 400) (fd 1000) ;Earth (setp -400 250) (pensize 2) (filled_circle 150) ;Moon (lt 90) (pencolor 'black) (draw_tree 20 190 35 6 1.3) ;Trees (draw_tree 90 370 40 8 1.2) (draw_tree 150 150 35 5 1.1) (draw_tree 320 130 45 5 1.3) (draw_tree 220 180 35 6 1.1) (draw_tree 400 220 35 7 1.3) (draw_tree -60 180 35 6 1.1) (draw_tree -120 180 35 6 1.3) (draw_tree -220 300 35 8 1.1) (draw_tree -350 180 35 6 1.3) (draw_tree -420 215 45 7 1.1) (stop_drawing) (exitonclick)) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)