何となくいい感じに点を散らす方法を探していて、Evil Mad Scientistの人が作っていたやつを思い出した。
StippleGen: Weighted Voronoi stippling and TSP paths in Processing | Evil Mad Scientist Laboratories
元のソースはこれ。
Weighted Voronoi Stippling
論文もあって、他にも面白そうな研究が沢山。
仕組みとしては適当に点を置いた後、ボロノイ領域に分け、その領域を正方形に近づくよう変形したものの中心に点を移動させて描画している。
中身を整理して必要なところだけ抜き出した。Processingの2.0.2で、toxiclibと適当な画像を用意して下さい(コードと同階層にdataフォルダを作り、img.jpgで保存)。
stipple.pde
VoronoiができるということはDelaunayもすぐできるだろうと思ってJonathan PuckeyのDelaunay Raster的なことをやってみた。
weighted_delaunay.pde
点の結び方を変える(vertexをコメントアウトしてわざと三角形にしない)とか
整然としているのであれば線の方がまだ何かに使えるかも知れない
点の打ち方と、色の塗り方をどうするかが大事なんだと思った。
Evil Mad Scientistのやつは巡回セールスマン問題のアルゴリズムを使って、点を打つ機械が最短の動きで描画できるようにもしてある。実行時間を縮めるにはああいう処理が必要になってくるんですね。かつ視覚的にも面白い。