領域分割サンプル

「2次元空間で、近くの点を取得」みたいな処理を、そこそこ早く動くように書いてみたいと思い立って、作ったモジュール。作ったのは随分と昔で、Coffeeスクリプトがまだ流行ってた頃でした…懐かしい。

やってることは単純で、領域内に一定数のオブジェクトが入ったら、適当に領域を4分割する、という動きです。領域内のオブジェクト数が、一定数を下回ったら、領域分割を解除するようになっています。

サンプルとして、速度違いの点が移動して、近くの点と線で繋がる、という処理を書いてみました。実験ということで、どういう風に領域が分割されるかも表示してみました。

動くもの / areadivクラス(Coffee)

総当たりだと、結構な遅さになるので、そこそこは早い気がします。

タイトルとURLをコピーしました