Pārlūkot izejas kodu

added line variables

master
Thorn Avery pirms 4 gadiem
vecāks
revīzija
3529cf95ee
2 mainītis faili ar 22 papildinājumiem un 9 dzēšanām
  1. +22
    -9
      lindenmayer.rkt
  2. Binārs
      test-plant.png

+ 22
- 9
lindenmayer.rkt Parādīt failu

@@ -3,14 +3,16 @@
(require graphics/value-turtles)
(require file/convertible)

(define forward 3)
(define start '(X))
(define forward 4)
(define theta 20)
(define generations 6)
(define generations 7)
(define thick 8)

(define (tend sym)
(cond
[(eq? sym 'F) '(F F)]
[(eq? sym 'X) '(F m l l X r p X r p F l p F X r m X)]
[(eq? sym 'X) '(d F m l l X r p X r p F l p F X r m X)]
[else `(,sym)]))

(define (season plant)
@@ -24,7 +26,7 @@

(define init-turtle
(set-pen-width (turtles 600 800 300 400 (/ pi -2))
1))
thick))
(define state '())

(define (step-turtle op turtle)
@@ -32,14 +34,25 @@
[(eq? op 'F) (draw forward turtle)]
[(eq? op 'm) (turn theta turtle)]
[(eq? op 'p) (turn (* -1 theta) turtle)]
[(eq? op 'u) (set-pen-width turtle
(+ 1 (turtles-pen-width turtle)))]
[(eq? op 'd) (set-pen-width turtle
(- (turtles-pen-width turtle) 1))]
[(eq? op 'l) (begin (set! state
(cons (turtle-state turtle)
state))
(set! thick
(cons (turtles-pen-width turtle)
thick))
turtle)]
[(eq? op 'r) (restore-turtle-state turtle
(begin (let ([s (car state)])
(set! state (cdr state))
s)))]
[(eq? op 'r) (let ([s (car state)]
[t (car thick)])
(begin
(set! state (cdr state))
(set! thick (cdr thick))
(set-pen-width
(restore-turtle-state turtle s)
t)))]
[else turtle]))

(define (run-turtle plant turtle)
@@ -54,7 +67,7 @@
(write-bytes pict file)))

(define (test-plant)
(let ([plant (grow '(X) generations)])
(let ([plant (grow start generations)])
(begin (set! state '())
(write-plant (run-turtle plant init-turtle)
"test-plant.png"))))


Binārs
test-plant.png Parādīt failu

Pirms Pēc
Platums: 316  |  Augstums: 495  |  Izmērs: 30KB Platums: 858  |  Augstums: 1328  |  Izmērs: 186KB

Notiek ielāde…
Atcelt
Saglabāt