summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/l-system-exemple.lisp111
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)