曲がった迷路その15 - バイキュービック補間まとめ [曲がった壁を持つ迷路の生成]
昨日、バイキュービック補間の数学的な意味を考えた。これで格子点で定義された2次元ポテンシャルの局所的な補間はこれでOKということにする。
具体的な補間とアルゴリズムの詳細
さて、これでスペックルパターンから作ったポテンシャル関数を補間することができるということににする。具体的にどうするかと言えば式-37を使って
とすればよい。ついでにグラディエント
となる。ここで である。絶対値が入っているのにうっかりこれを忘れるところだった。最初から追いかけてアルゴリズムを整理しよう。何度も書いてるけど、
- サイズを決める
- そのサイズのスペックルパターンを作る
- 出入り口になる位置を決める
- それ以外のところに外壁を作る
- 新しく内壁を作って壁をのばす
- のばせるところがなくなったらできあがり
最後ののばせるところがないかどうかの判定は結構難しい。これは後でまた考える。
内壁を作るところは
- 新しい壁の連結端の位置を決める。それは既存の壁の端点となる
- 連結端の位置を中心にランダムな半径の円を仮想的に描く
- その円周上で一番ポテンシャルの値が低いところを探す
- ポテンシャルの値が閾値より大きければ作業をやめて最初に戻る
- その値が閾値より小さければ新しい壁の解放端をそこに置く
- 解放端の位置に衝突回避ポテンシャルを足す
- 繰り返す
パラメータとしては
- 迷路のサイズ、すなわちFFTサイズ(縦×横)
- スペックル生成のときのλ/N.A.
- 衝突回避ポテンシャルの高さと範囲
- ポテンシャルの閾値
- 壁の長さの確率分布
2009-07-21 21:36
nice!(0)
コメント(0)
トラックバック(0)
コメント 0