点を領域に変える
点を散らしたら、今度は逆を見る。盤面の各マスが「いちばん近い点」のどれに属するかで塗り分けると、平面が点の数だけの区画に割れる。隣り合う区画の境目は、ちょうど2点の中間を通る線になる。
ボロノイ図は、平面に散らした種点(サイト)のそれぞれに「他のどのサイトより近い領域」を割り当てた分割。隣り合う2サイトの領域の境界は、その2点の垂直二等分線の一部になる。Georgy Voronoy が定式化した。最近傍だけでなく2番目に近い点との距離を読むと、領域の塗りでなく境界の網が出る。Worley ノイズ(cellular noise、Steven Worley が 1996 年に発表)では、F1 が最近傍までの距離、F2−F1 が境界までの近さになる。
種点を撒いて、それぞれに小さな速度を持たせて漂わせる。壁にぶつかると向きを反転して画面の中に留まる。区画はまだ描かず、種点そのものを点で打つ。
種点がゆっくり散らばって動く。この種点から区画を起こす。盤面を粗いマスに切り、各マスの中心から全種点への距離を測って、最短の種点の番号を owner に記録する。所有者が隣のマスと食い違う辺だけを塗ると、区画の境界線が浮かぶ。種点が動くと境界も追従する。
各種点を芯にした多角形の区画に割れ、境界線が動く種点に合わせて伸び縮みする。点(離散)を領域(連続)に裏返している。
最近傍だけでなく、2番目に近い種点までの距離も拾うと、別の読み方になる。各マスで最短 d1(F1)と次点 d2(F2)を求め、d2 − d1 を明るさに写す。区画の中央では2点の距離が大きく離れていて差は大きく、境界では2つの種点が等しく近いので差が 0 に落ちる。差が小さい所だけ暗くすると、区画の面が消えて境界だけが細胞壁のように残る。
d2 − d1 を d1 だけ(最近傍の距離そのもの)に取り替えると、境界の網でなく種点を中心にした塊の塗りに戻る。距離を dx * dx + dy * dy から Math.abs(dx) + Math.abs(dy) のマンハッタン距離に替えると、丸い区画が縦横に角ばった結晶になる。最近傍だけ拾うか、次点との差を取るか、どの距離で測るか——同じ種点の集まりが、その読み替えだけで区画にも細胞にもなる。