diff options
Diffstat (limited to 'examples/l-system-exemple.lisp')
-rw-r--r-- | examples/l-system-exemple.lisp | 111 |
1 files changed, 54 insertions, 57 deletions
diff --git a/examples/l-system-exemple.lisp b/examples/l-system-exemple.lisp index e95f4d3..63302e7 100644 --- a/examples/l-system-exemple.lisp +++ b/examples/l-system-exemple.lisp @@ -1,62 +1,59 @@ (in-package #:l-system-examples) -(def-l-system-clause 'f - #'(lambda (list) - (let* ((r0 0.5235988) - (n0 (* 1.01 (car list)))) - `((f ,(* 1.11 n0)) - - ([) - (+ ,r0) - (f ,(* 0.89 n0)) - (]) - - ([) - (- ,r0) - (f ,(* 0.89 n0)) - (]) - - ([) - (/ ,r0) - (f ,(* 0.89 n0)) - (]) - - ([) - (q ,r0) - (f ,(* 0.89 n0)) - (]) - - (f ,(* 1.11 n0)) - - ([) - (+ ,r0) - (f ,(* 0.89 n0)) - (]) - - ([) - (- ,r0) - (f ,(* 0.89 n0)) - (]) - - ([) - (/ ,r0) - (f ,(* 0.89 n0)) - (]) - - ([) - (q ,r0) - (f ,(* 0.89 n0)) - (]) - - (f ,(* 1.11 n0)))))) - -(def-l-system-clause '+ - #'(lambda (list) - `((+ ,(+ 0.1 (car list)))))) - -(def-l-system-clause '- - #'(lambda (list) - `((- ,(+ 0.1 (car list)))))) +(deflsys f (n) + (let* ((r0 0.5235988) + (n0 (* 1.01 n))) + `((f ,(* 1.11 n0)) + + ([) + (+ ,r0) + (f ,(* 0.89 n0)) + (]) + + ([) + (- ,r0) + (f ,(* 0.89 n0)) + (]) + + ([) + (/ ,r0) + (f ,(* 0.89 n0)) + (]) + + ([) + (q ,r0) + (f ,(* 0.89 n0)) + (]) + + (f ,(* 1.11 n0)) + + ([) + (+ ,r0) + (f ,(* 0.89 n0)) + (]) + + ([) + (- ,r0) + (f ,(* 0.89 n0)) + (]) + + ([) + (/ ,r0) + (f ,(* 0.89 n0)) + (]) + + ([) + (q ,r0) + (f ,(* 0.89 n0)) + (]) + + (f ,(* 1.11 n0))))) + +(deflsys + (n) + `((+ ,(+ 0.1 n)))) + +(deflsys - (n) + `((- ,(+ 0.1 n)))) ;; Rest (defclass test-window (gl-window) |