ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Processing×Blender】Voronoi図とDelauany Triangulationのコースターを作る

成果物

f:id:Nekodigi:20200403162918j:plain
ファイル数が15を超え、もはやProcessingが踏み込んではいけない領域に達しようとしていますw。今回は、Voronoi図の生成と、多角形のオフセットを行い、CSVに似た形式に変換して記録し、それをBlenderスクリプト読み込むという仕組みになっています。

仕組み

Processing側

今回特に苦労したのは、多角形のオフセットです。Blenderでそのままオフセットを行うと自己交差などの判定が行われず、正しい結果が得られません。これを防ぐために、今回は、Processingでオフセットを行っています。手順はこうです。

  1. 高さがオフセット×2より小さければオフセットせず削除
  2. 辺と二つ次の辺の交差を求め、交差していれば辺を連結する。

こうして得られたデータは、頂点位置のデータと頂点の接続データに分けて区切り文字を入れて記録され、Blenderで再度再現されます。

Blender

Processingの平面のデータがそのまま再現されているので、これを押し出し、円柱にブーリアン演算をかければ円形にくりぬかれます。淵を付ければ、強度が上がります。

コード

Processingを実行して、CSVファイルを生成した後、Blenderスクリプトのパスに指定してください。
Voronoi_CSV_V2が今回のコードです。
Voronoi_CSVではオフセットされていないコードが出力されます。
github.com
Blenderのコードはこちらです。