このアプリについて
コンピューターグラフィックスやシミュレーションの現場で使われるボロノイ図とドロネー図を2D、3D、球状の全てで体験することができます。また、生成した図形に様々なアルゴリズムを適用すると、変形させたり、穴をあけたり、ツタのような模様を作ったりすることもできるのです。
使い方
1. スタートボタンを押す。
2. 次元を選択する。
3. 図の種類を選択する。
4. 適応するアルゴリズムを選ぶ。
オプション1. 頂点の数を設定する
オプション2. 図を再生成する。
オプション3. 図をばらばらにする。
体験できる三つの図形
ボロノイ図とは
美しい破片を生成することができるため、破壊シミュレーションの場面でよく使われる図形です。実は、自然界でも泡や微生物の骨格にこのような模様が現れています。
幾何学的には任意の点群の中で、最も近い点を元に領域分けしたものになっています。このアプリでは、ドロネー図の外心をつなぐ方法で生成する方法を採用しました。
ドロネー図とは
正三角形に近くなるように三角形分割したものがドロネー図です。計算に適した三角形なのでコンピューターグラフィックスの分野でよく使われます。アプリ内ではでは一つ上の次元の凸包を平らに押し潰すようにして生成する方法を採用しています。
適用できる5つのアルゴリズム
均等に広げる → ボロノイ図の緩和
生成されたボロノイ図の重心に母点を移動させると、なんと!たったこれだけで点を均一に広げることができるのです。この方法はVoronoi Relaxation(ボロノイ図の緩和)と呼ばれています。
ツタのような模様を作る → A*アルゴリズム
地図アプリなどで使われるA*アルゴリズムを使い、任意の二つの点の最短経路を求め続けていくと、不思議なことに、ツタのような模様が出来上がっていきます!今回は曲線で描くことでさらに自然な仕上がりにしました。
穴の開いた複雑な形を作る → 制約付きドロネー三角形分割
ドロネー図は決められた点を通るように変形することができ、これをConstrained Delaunay Triangulation(制約付きドロネー三角形分割)と呼びます。このアルゴリズムを使うと、星形やドーナツ型などあらゆる形のドロネー図を作ることができるのです!
バラバラにしながら小さくする → 多角形のオフセット
タップしたところの周りの多角形をPolygon Offset(多角形のオフセット)という方法で小さくすると、ばらばらに小さくなりながら消えてゆくアニメーションができます。このアルゴリズムは、多角形のオフセットは輪郭を描いたりする場面でも使われています。
Google Play
3Dのボロノイ図が体験できるのはこのアプリだけです!めったに見られない美しい技術をぜひ体験してみてください。