敵機急速接近中!

「敵機急速接近中!」
映画とかで見るレーダー画面では、敵機の位置を示す点と敵/味方機種名をあらわす文字がぶつからないようにレイアウトされている。
どういう風に作ったら、計算コストをかけずにそれっぽくなるかなと思って作ってみた。

引き出し線(leader line)
「敵機急速接近中!」
映画とかで見るレーダー画面では、敵機の位置を示す点と敵/味方機種名をあらわす文字がぶつからないようにレイアウトされている。
どういう風に作ったら、計算コストをかけずにそれっぽくなるかなと思って作ってみた。
でも却ってあたりまくる時もある。
「うろうろ逃げ回るよりは当たらんものだ」

現在は、点の位置だけを見ている。
文字同士の衝突判定は行っていない。
点の近くに別な点がある場合に、斥力方向に文字が置かれるようにしているだけ。
距離も固定。

次の三点をやればより適切な位置が導けるが、計算量が大きくなりそうなので工夫が必要。
・文字同士の衝突判定を行い、衝突しない位置を探す。
・文字と点の距離を可変にして、密集地でも避けられるように。
・引き出し線同士がクロスしないように置き換える。

引力、斥力をうまく組み合わせると良いのかもしれないけど、それはまた今度。

実際のレーダではFPSがずっと低そうだけど、どうなんだろう。

ソースコード
https://github.com/umhr/Leadliner

参考
http://blog.goo.ne.jp/chickenman_nfc1/e/8cb6035545226e710427cffdea9de3fe