1437

(ns seni.sketch-1437
  (:require #+clj  [seni.render :as r]
            #+cljs [seni.render :as r :include-macros true]
            [seni.math :as m]
            [seni.perlin :as p]
            [seni.movement :as mv]
            [seni.bezier :as b]))

(def width 600)
(def height 600)

(defn setup []
  (r/smooth)
;  (r/no-stroke)
  (r/colour-mode :rgb)
  (r/frame-rate 10)
  ;(r/no-loop)
  )

(defn vary
  [x y scale]
  (+ y (* scale (p/perlin x y y))))

(defn draw [state]
  (r/push-matrix)
  (r/scale (/ width 1000) (/ height 1000))

  (r/background-float 255)

  (r/stroke 255 0 0)
  (r/stroke-weight 0)

  (let [variation 100
        line-width 70
        line-segments 30]
   (doseq [h (range -20 1020 20)]
     (r/fill-float 200 200 200 100)
     (b/render-bezier line-segments line-width
                      0 (vary 0.10 h variation)
                      333 (vary 333.33 h variation)
                      666 (vary 666.66 h variation)
                      1000 (vary 1000.10 h variation))

     (r/fill-float 200 200 200 100)
     (b/render-bezier line-segments line-width
                      (vary 0.10 h variation) 0
                      (vary 333.33 h variation) 333
                      (vary 666.66 h variation) 666
                      (vary 1000.10 h variation) 1000)))



  (r/pop-matrix))

(r/defsketch sketch-1437
  :title "bezier curves"
  :size [width height]
  :setup setup
  :draw draw)