Mayaプラグイン(この質問はMayaから独立しています)を実装して、3Dボロノイパターンを作成したいと思います。
私はポイントサンプリングから始めなければならないことを知っています(このペーパーで説明する適応ポアソンサンプリングアルゴリズムを実装しました)。
これらの点から、ボロノイを適用してメッシュの3Dワイヤーを作成する必要があると思いました((Python)scipy.spatial.Voronoiを使用しようとしましたが、期待した結果とは異なっていました)。
何か不足していますか?そのようなパターンを作成するために実装する必要がある適切なパイプラインとアルゴリズムを誰かが提案できますか?
[編集]以下は、このようにscipy.spatial.Voronoiから取得した結果を処理する例です(ここで提案されているように):
vor = Voronoi(points)
for vpair in vor.ridge_vertices:
for i in range(len(vpair) - 1):
if all(x >= 0 for x in vpair):
v0 = vor.vertices[vpair[i]]
v1 = vor.vertices[vpair[i+1]]
create_line(v0.tolist(), v1.tolist())
返信してくれてありがとう。私がやったことを複製して、提案されたように画面を投稿します。とにかく、この質問の最終的な目的は、コードをデバッグすることではありませんが、私がやっていることが正しいか、または間に他の手順がないかを理解することです!
—
Jiloc、2015年
提案された例を追加しました!
—
Jiloc 2015年
ポアソンサンプリングのポイントは正しいです。それらを生成するアルゴリズムは完全にユニットテストされており、画面に表示されるものは、Voronoi(points)を呼び出す前にプログラムで作成したサンプルポイントを中心とする球体です。私は正しい道をたどっていないか、ボロノイ結果を間違った方法で処理しているのではないかと心配しています
—
Jiloc
あなたが示す画像は、2次元関数でボロノイを行っています。
—
joojaa
@joojaaサンプル画像から、2Dサーフェスのボロノイセルエッジが必要なものであると予想しました(3Dで与えられる平面セクションのコレクションではなく、球体サーフェス上のポイントを接続するラインセグメントのコレクションを与えるため)。 。ただし、scipy.spatial.Voronoiは、埋め込まれたサーフェスではなく、N次元空間用に設計されているようです。2Dサーフェスに拘束された3Dポイントにどのように使用されるかすぐにわかりません。
—
trichoplax、2015年