Add aphorism fourteen
This commit is contained in:
parent
57ad9171f7
commit
52fc05caea
1 changed files with 61 additions and 0 deletions
61
src/aphorisms/fourteen.clj
Normal file
61
src/aphorisms/fourteen.clj
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
(ns aphorisms.fourteen
|
||||||
|
(:require [thi.ng.math.core :as m]
|
||||||
|
[thi.ng.math.noise :as n]
|
||||||
|
[quil.core :as q]
|
||||||
|
[quil.middleware :as qm]))
|
||||||
|
|
||||||
|
(defn setup []
|
||||||
|
(q/frame-rate 30)
|
||||||
|
(q/color-mode :hsb 360 100 100)
|
||||||
|
(q/rect-mode :center)
|
||||||
|
(q/background 350)
|
||||||
|
{})
|
||||||
|
|
||||||
|
(defn update-state [state]
|
||||||
|
(update state :attractor (partial drop 100)))
|
||||||
|
|
||||||
|
(def margin 40)
|
||||||
|
|
||||||
|
(defn draw-state [state]
|
||||||
|
(let [x (* 0.5 (q/width))
|
||||||
|
r 12]
|
||||||
|
(q/background 180 10 90)
|
||||||
|
(q/fill 180 10 90)
|
||||||
|
(doseq [y (range (+ margin 32) (- (inc (q/height)) margin) (/ r 3))
|
||||||
|
:let [yt (+ y (* 0.02 (q/millis)))
|
||||||
|
n (q/noise (* 0.05 yt))
|
||||||
|
size-l (+ r (* 64 n))
|
||||||
|
shrink-l (* m/PI (q/noise (* 0.07 yt)))
|
||||||
|
end-l (+ shrink-l (- m/PI))
|
||||||
|
size-r (+ r (* 64 (- 1 n)))
|
||||||
|
shrink-r (* m/PI (q/noise (* 0.06 yt)))
|
||||||
|
end-r (- 0 shrink-r)
|
||||||
|
x-off (* 20 n)]]
|
||||||
|
;; debug
|
||||||
|
;; (q/stroke 20)
|
||||||
|
;; (q/ellipse (+ x x-off) y 1 1)
|
||||||
|
|
||||||
|
;; draw the oddly moving ridge
|
||||||
|
(q/stroke 320 50 80)
|
||||||
|
(q/arc (- (+ x x-off) (* 0.5 size-l)) y size-l size-l end-l 0)
|
||||||
|
(q/arc (+ (+ x x-off) (* 0.5 size-r)) y size-r size-r (- m/PI) end-r)
|
||||||
|
|
||||||
|
;; draw extensions on both sides
|
||||||
|
(when (< end-l (* -5/8 m/PI))
|
||||||
|
(q/stroke 180 10 80)
|
||||||
|
(q/arc (- (+ x x-off) (* 0.5 size-l)) y size-l size-l (- end-l (* 70/360 m/PI)) (- end-l (* 50/360 m/PI))))
|
||||||
|
|
||||||
|
(when (< end-r (* -5/8 m/PI))
|
||||||
|
(q/stroke 180 10 80)
|
||||||
|
(q/arc (+ (+ x x-off) (* 0.5 size-r)) y size-r size-r (+ end-r (* 50/360 m/PI)) (+ end-r (* 80/360 m/PI)))))))
|
||||||
|
|
||||||
|
(q/defsketch fourteen
|
||||||
|
:title "Fourteen"
|
||||||
|
:size [500 500]
|
||||||
|
:settings #(q/pixel-density (q/display-density))
|
||||||
|
:setup setup
|
||||||
|
:update update-state
|
||||||
|
:draw draw-state
|
||||||
|
:renderer :p2d
|
||||||
|
:features [:keep-on-top :no-bind-output]
|
||||||
|
:middleware [qm/pause-on-error qm/fun-mode])
|
||||||
Loading…
Add table
Add a link
Reference in a new issue