ねこでじ(Nekodigi)

Nekodigi’s diary

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

【Processing】マンハッタン距離から高次pノルムまでのVoronoi図を表示する。

成果物

www.youtube.com
高次pノルムという表現が正しいのか微妙ですが、ひとまず、Voronoi図の境界線が変化しているということがわかると思います。Voronoi図はこれ以外にも距離関数を工夫することで様々なパターンを表示することができます。

仕組み

次の式で表される距離関数を使っています。
 \begin{array}{l}
a,bの距離を求める。\\
pが次数で、\\
1ならマンハッタン距離\\
2なら通常のユークリッド距離\\
dx=b_{x} -a_{x}\\
dy=b_{y} -a_{y}\\
distance=dx^{p} +dy^{p}
\end{array}
この距離関数を使って、各ピクセルで、もっとも距離が近い点の色で塗りつぶす処理を行えばボロノイ図が出来上がります。

コード

github.com