橋本 Hashimoto   Baku

橋本 Hashimoto   Baku

Thinking Particlesでストレンジ・アトラクタ (メモ)

このページは個人的なメモ書きです。何かあればご連絡ください。

素材一式

Thinking Particles を使ってストレンジ・アトラクタをシミュレーションするサンプルです.

Xpresso の中身をみるとわかりますが,Python ノードで一括で座標の更新をしています.

def lorenz_attractor(p, a, b, c, dt):
    c /= 10
    dx = -a*p.x + a*p.y
    dy = -p.x*p.z + b*p.x - p.y
    dz = p.x*p.y - c*p.z
    p.x += dx * dt
    p.y += dy * dt
    p.z += dz * dt

コードを簡略化するために,オイラー法を使っています.

要するに,現在のパーティクルの座標をもとにパーティクルにかかる力を計算し,その分だけ座標をずらしている話なので,ローレンツアトラクタに限らず,汎用性は高いです.バネのような動きを作ったり,渦巻きを描かせたりなんてことも出来ます.