Calculate points
authorJavier Sancho <jsf@jsancho.org>
Mon, 15 Apr 2019 15:10:24 +0000 (17:10 +0200)
committerJavier Sancho <jsf@jsancho.org>
Mon, 15 Apr 2019 15:10:24 +0000 (17:10 +0200)
src/plugins/default/main.scm

index b668684f71a95d7ba0d127908fcea3c5dbdc9f92..7a64459f52d2908cfd6c4141e9ecdd46497001c1 100644 (file)
   (build-patches patches))
 
 (define (build-patches patches)
-  (define* (get-points n #:optional (l '()))
+  (define* (get-points n seed #:optional (l '()))
     (cond ((> n 0)
-           (get-points (- n 1) (cons n l)))
+           (let* ((a (+ seed (* (sqrt n) 5)))
+                  (r (if (= n 0)
+                         0
+                         (+ 10 (* n (+ 2 (random:exp))))))
+                  (point (list
+                          (* (cos a) r)
+                          (* (sin a) r))))
+             (get-points (- n 1) seed (cons point l))))
           (else
            l)))
 
-  (let ((sa (* (random:exp) 2 pi))
-        (points (get-points (* 8 patches))))
+  (let* ((sa (* (random:exp) 2 pi))
+         (points (get-points (* 8 patches) sa)))
     (display points)
     (newline)))