From 4cfd632c24b12a378d50feb341e162d3b1519499 Mon Sep 17 00:00:00 2001 From: Charles Comstock Date: Sun, 4 Aug 2024 21:53:58 -0500 Subject: [PATCH] add a new renderer called delta with phase modulation --- src/shimmers/sketches/pendulum_sway.cljs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/shimmers/sketches/pendulum_sway.cljs b/src/shimmers/sketches/pendulum_sway.cljs index 4da2aa44..723bf9ce 100644 --- a/src/shimmers/sketches/pendulum_sway.cljs +++ b/src/shimmers/sketches/pendulum_sway.cljs @@ -45,10 +45,22 @@ (* r dampen1 (math/sin (+ (* 6 dampen2) (* fy t))))) (v/polar (* 0.04 r dampen2) (* 4 t))))) +(defn delta [r t {:keys [lambda1 lambda2 dx dy gamma-rate]}] + (let [dampen1 (math/exp (* (- lambda1) t)) + dampen2 (math/exp (* (- lambda2) t)) + fx (+ dx (* 0.00025 (math/sin (* gamma-rate t)))) + fy (+ dy (* 0.00025 (math/cos (* gamma-rate t))))] + (tm/+ (gv/vec2 (* r dampen1 (math/cos (+ (* 6 dampen2) (* fx t) + (* 0.005 (math/sin (* 0.2 t)))))) + (* r dampen1 (math/sin (+ (* 6 dampen2) (* fy t) + (* 0.005 (math/cos (* 0.2 t))))))) + (v/polar (* 0.04 r dampen2) (* 4 t))))) + (def functions {:alpha alpha :beta beta - :gamma gamma}) + :gamma gamma + :delta delta}) (defn plot [{:keys [p r]} {:keys [select-fn] :as params}] (let [limit 100 @@ -68,7 +80,8 @@ circles)) (defn gen-parameters [] - {:select-fn (dr/weighted [[:alpha 1.0] [:beta 2.0] [:gamma 1.5]]) + {:select-fn (dr/weighted [[:alpha 1.0] [:beta 2.0] + [:gamma 1.5] [:delta 1.0]]) :dx (+ (dr/random-int 1 6) (dr/random -0.01 0.01)) :dy (+ (dr/random-int 1 6) (dr/random -0.01 0.01)) :lambda1 0.004