2012-02-10 4 views
3

プレーン(平行四辺形)のボロノイ図を3Dで計算できるコード/ライブラリはありますか?私はQhullをチェックしました。そして、それはポイントでしか動作しないようです。その例では、Voro ++は球のサイズが違っていますが、ポリゴンには何も見つかりませんでした。3Dでプレーンのボロノイ図を計算する

この画像では、(sample planes in 3d)の平行四辺形は厚さがあるため3Dですが、この場合の厚さはゼロになります。

答えて

3

ボロノイ細胞は平行四辺形ではない。あなたが投稿した画像でここで混乱しています。ボロノイのセル境界は、個々の手段を分離している超平面の一部です。

このウェブサイトの3Dボロノイ図を議論し、可視化をチェックアウト:

http://www.wblut.com/2009/04/28/ooh-ooh-ooh-3d-voronoi/

ボロノイ・セルを計算するために、一般的な方法は、最初のドロネー三角形分割を構築することです。 2Dでこれを行うアルゴリズムは数多くありますが、3Dではかなり複雑になります。しかし、あなたはまだ何かを見つけることができるはずです。 qhullが適切な方法かもしれません。

デローネの三角測量をしているときは、各テトラデータの中心を計算します。これらは、描画する必要があるポリゴンのコーナーです。 Delaunay三角測量の任意のエッジに対して、隣接する中心を接続するポリゴンを描画します。これは超平面でなければなりません。 これで、凸包の一部であるエッジのためにハイパープレーンを描画するだけで済みます。このためには、内部から無限の外部に既に持っているはずの超平面を続ける必要があります。

は、最初に2dで始めることを強くお勧めします。いったん2D用の作業用コードがあれば、3Dで同じ作業を行う方法を参照してください。あなたが速くしたいのであれば、これはすでに2Dでかなり難しいです。

これは、ドローネとボロノイ図の両方を視覚化ウィキペディアからのグラフィックである: Delaunay and Voronoi in 2D

黒線はドロネー三角形分割です。茶色の線はこれと直交しており、ボロノイ図を形成しています。ドローネ三角測量は、さまざまなクールな視覚化のために使用できます:凸包、ボロノイ図、アルファ形状の計算:http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Alpha_shapes_3/Chapter_main.html

+0

私の質問は十分にはっきりしていないと思います。私はそれを明確にしようとしましょう。ポイントのボロノイ図を作成すると、得られるセルは特定のポイントに最も近いリージョンになります。私がしたいことは、これらの平行四辺形のためにボロノイを行い、各ボロノイセルが対応する平行四辺形に最も近い領域を定義するようにすることです。私は2Dでそれを行う方法を知ることができます(四角形の頂点として点を定義し、次に全部を合計して全領域を集めるなど)。しかし、3Dは本当に複雑で、自分自身を信頼できません。だからこそ私は堅牢でテストされたコード/ペーパー/アルゴリズムを探しているのです – zamazalotta

+0

2dでも、コーナーは機能しません。私は簡単にコーナーを取るときに失敗する状況を描くことができます。 R1が0,0,0,1 1,1 1,0であり、R2が-50,50 50、-51 50、-52 -51,49であるとする。あなたが必要とするのは、オブジェクトの各ペアのリム上のポイントの最も近いセットです。エッジ/プレーンのセットが平行である場合、最小値と最大値(3d、4ペア)が必要です。 –

1

通常、Bowyer-Watsonが推奨アルゴリズムです。 ほとんどの論文/アルゴリズムの問​​題は、ボロノイセルがほとんど平坦に終わるはずで、複数の点がある場合に、点が空間内で互いに接近している(四面体が薄いために)ときに発生するトリッキーな状況に対処できないことです。同じ球で不正確な数学と四捨五入を扱う数学的な複雑さを加えて、あなたは無限のデバッグのためのレシピを持っています。 私がお勧めするのは、それが受け入れられる場合は、まずデータをフィルタリングすることです。さもなければ、あなたはあなたのアルゴリズムの膨大な量の特殊なケースをコーディングすることになります。

これまで、デラウネイ三角測量から始まり、そこからボロノイ細胞を作成することで、これらの状況を解決する方法が異なる日本の論文がありましたが、それにも欠陥がありました。 研究者になって、幅広いアルゴリズムを考え出し、研究助手に詳細を心配させるのはいいことです。

関連する問題