空間を充填するつーのはすごく難しい問題らしい。
球体で埋める場合は「アポロニウスのギャスケット」というものを使えば出来そうですけど、それ以外はランダムに位置を決めてみて、重なってれば「偽」、はまれば「真」と、繰り返していくしかなさそうです。
で、これが、
空間を充填するつーのはすごく難しい問題らしい。
球体で埋める場合は「アポロニウスのギャスケット」というものを使えば出来そうですけど、それ以外はランダムに位置を決めてみて、重なってれば「偽」、はまれば「真」と、繰り返していくしかなさそうです。
で、これが、
Blogger投稿試験を兼ねて、AEのPlexusのよーなやーつ。
Processingソースコード StellaInABox-150828a.zip
動かすには他に「Toxiclibs」とProcesing IDEからインストールできるライブラリ「Peasycam」が必要です。
ずいぶん前に作ったのがハードディスクの中で眠っておりました。
おもいつくままにコーディングしたのでもはや本人にもよく分からないことになってます。ぐちゃぐちゃ。
Objメッシュデータからウェイポイントを作り、パスファインディングしています。パスファインディング自体は前回と同じアルゴリズムですが、ウェイポイントの作成の際にメッシュデータを「ハーフエッジデータ構造」に変換しています。任意のエッジをはさんで(共有して)隣り合うポリゴンを得るためです。3Dソフトでループ/リング選択が出来るのはこの構造のおかげですね。
必要なライブラリは「controlP5」、「PeasyCam」、「OBJLoader」です。いずれもProcessing IDEの「Add Library…」でインストールできます。
ダウンロード→AStarMesh2-150523a(for Processing2.2.1)
中身見たら吐くよ。
パート2!ウェイポイントをベースのパスファインディングです。
Processing sketchはAStarWayPointです。
自動で三角分割するライブラリはLee ByronさんのMeshを使用しています。ただしバグがあったので修正しました、mesh、こちらはコモンズライセンスAttribution-NonCommercial-ShareAlike 3.0 Unportedとなります。
およそ近道をたどって習得するにはオッサンの頭には難しかった「近道」の探し方。其の壱、グリッドベースの迷路を解く。
Processing sketch →AStarGrid-141109a