ポアソン・ディスク — 均等だが規則でない、水玉のばら撒き方
なにか
水玉の布・壁紙のドット・印刷の網点・木の植え方・鳥の巣の分布——「均等にばら撒きたいが、格子のように規則正しくは見せたくない」場面は多い。一様乱数は塊と隙間ができ、格子は規則が見える。ポアソン・ディスクはその間にある配置で、「どの 2 点も距離 r 以上」という反発だけで作る。Bridson(2007)の作り方は、一辺 r/√2 の格子で近所を引き、活動中の点のまわりに k 回だけ候補を撒く——1 マスに高々 1 点しか入らないので(対角がちょうど r)、近所の判定が速い。
問題は「均等だが規則でない」を数で言えるかである。このギャラリーには回折の道具がある。点の配置のフーリエ変換を見ればよい。
青ノイズ——長い波長の濃淡がない
同じ個数(258 点)の一様乱数・ポアソン・ディスク・六方格子を並べ、角度平均の構造因子 S(q) を測った。ポアソン・ディスクは q = 0.2〜0.5·(2π/r) で S ≈ 0.1——一様乱数の ≈ 1 に対して、長い波長の濃淡が消えている。q ≈ 2π/r(点の間隔の逆数)に環が立ち(1.46)、その上は平らに戻る。これが青ノイズ(低い周波数がない雑音)で、目には「均等」と映る。六方格子は同じ密度でも S に鋭い点(8.9・ブラッグ点)が立つ——それが「規則」と映る。均等と規則は別の量で、ポアソン・ディスクは前者だけを持つ。
最近傍距離の変動係数(ばらつき÷平均)で言えば、乱数 0.49・ポアソン 0.09・格子 0.00。密度 n·r² は六方充填の上限 2/√3 = 1.155 の 56%(k=30)。
⚠️ Bridson の k=30 は極大ではない——k を 100 にすると密度がさらに 7% 増える(0.645 → 0.688)。未被覆(どの点からも r より遠い場所)は k=5 で 3.2%・k=30 で 0.04%・k=100 で 0.02%。⚠️ 有限の点数なので S(q) には揺れが残る。⚠️ 「反発する点の分布は青ノイズになる」は伝聞の一般論で、測ったのはこの配置だけ。
→ Hat の回折像(同じ構造因子。あちらは点で、こちらは環)
どう作ったか
generators/poisson.js。Bridson 法(格子 r/√2・k 回試行・決定的な乱数)と、対照の一様乱数・六方格子、角度平均の構造因子(90 方向)を自前で持つ。機械検査は 9 件: どの 2 点も距離 ≥ r(総当たり・k と種を振る)、格子 1 マス 1 点、未被覆が k で消える、密度が k で単調に増え上限の 5〜6 割(⚠️ k=30 は極大でない)、最近傍距離の変動係数、★低波数の S が潰れる、格子の点に対して環だけ、出荷SVG 2 枚。
出典
- 数理
- R. Bridson, "Fast Poisson disk sampling in arbitrary dimensions", ACM SIGGRAPH 2007 Sketches。青ノイズという語は R. Ulichney, "Dithering with blue noise", Proc. IEEE 76 (1988)。⚠️ 「反発 → 青ノイズ」の一般論は伝聞
- 親戚
- Hat の回折像(構造因子)・ボロノイ・フィロタキシス・トゥルシェ(乱数の模様の帳簿)
- 生成
- generators/poisson.js(poisson.svg r=0.034 の水玉・poisson-book.svg 3 つの配置と S(q))