成果物
www.youtube.com
磁石が同じ力の時、磁力線はちょうど二等分するところで(ぶつかります)この性質を利用して、Voronoi図を描けないかということでやってみました。今回のコードでは他の磁石の影響も受けるので、少し曲がったようになっていますが、味があるので敢えてそのままにしています。距離関数がそのままだと影響を受けすぎますが、4乗を使った距離関数()を使うと、なかなかきれいな結果が得られます。きちんと2等分線を描くものはまた今度作ろうと思います。
ガイドなし
塗りつぶしが薄いです。力が釣り合うところで止まってしまい、効率が落ちているのではないかと予測しています。
ガイドあり
別の方法で求めたVoronoi図の頂点に負の磁力を与えて引っ張ると、また違った結果が得られます。線が薄くなり、塗りつぶしが濃くなるのが特徴です。
仕組み
仕組みは上で紹介した通りです。Voronoi図についてさらに知りたい方は、過去記事をご覧ください。
nekodigi.hatenablog.com
コード
Voronoi図をうっすらと表示したり、ガイドとして使うために、Hull Voronoi 3Dを使っているのですが、非常に複雑なコードなので、本質を抜き出したMagnetic Voronoi Simpleというものを追加しています。先にそちらを見ることをお勧めします。
github.com
今回紹介したものを詳しく知りたい方は、Magnetic_Voronoi_with_Ground_Truthをご覧ください。