デルタ(変更)を小さくしたい場合は、デルタの小さな乱数を生成するだけです。
たとえば、次の代わりに:
windspeed = random (100) # 0 thru 99 inclusive
次のようなものを使用します:
windspeed = windspeed - 4 + random (9) # -4 + 0..8 gives -4..4
if windspeed > 99: windspeed = 99
elif windspeed < 0: windspeed = 0
そうすれば、風速は必要な範囲内に保たれ、徐々に変化するだけです。
これは、速度などの絶対値に対して機能します。また、徐々に変化するものが固定方向からの角度である場合は、方向に対しても機能します。
あらゆる測定に使用できます。
あるいは、風速がおそらく大きなデルタで変化することを確認したいが、ゆっくりと、現在のように目標風速を生成することができますが、徐々にそれに向かって移動します。
windspeed = 50
target = windspeed
while true:
# Only set new target if previous target reached.
if target == windspeed:
target = random (100)
# Move gradually toward target.
if target > windspeed:
windspeed = windspeed + max (random (4) + 1, target - windspeed)
else:
windspeed = windspeed - max (random (4) + 1, target - windspeed)
sleep (1)