スライダー内で数値を自由に泳がせる方法
下記記事の1次元バージョンです。
数値nを、スライダー内で自由に泳がせる方法を紹介する。
min = -5
max = 5
n = 0
nのスライダーを、最小値min, 最大値maxで作成する。
updater = 0
スライダーを作成、増分0.01
target = 0
nの目標
v = 0
速度
a = 0.005sgn(target - n) / (abs(n - target) + 10)
加速度
sensor = n ≟ min ∨ n ≟ max
updaterのOn Update スクリプト
SetValue[v,(v+a)*0.99]
SetValue[n,n+v]
If[sensor==true,SetValue[v,-v]]
If[abs(n-target)<1,SetValue[target,RandomBetween[10min,10max]/10]]