Box2Dで使われているOBBの計算方法

Box2Dではシェイプのboxの形状はvertexでしか取ってこれなくて困る。


OBBがあるのでこれを使おう!と思ったんだけど
以前OBBを主成分分析で生成した時に、対角にバウンダリができてしまうことがあったのを思い出してBox2Dもそんな感じになってたらやだなぁと思いビジュアライズしてみた。


http://takamatsu.cool.ne.jp/tattyu/p55/obb/


全然問題ないのでOBBのextentsを幅として使うことができそう。


アルゴリズム的には
点群から点の数だけ線分作って軸として計算して一番小さいOBBを使う
という単純なものなんだけど意外といい結果が返ってくるので侮れない。


何よりバウンダリが傾いて無駄に大きくなるとかがないし計算量もO(n^2)とかなので頂点数が少なければ十分リアルタイムでバウンダリ計算に使えるというのもでかい。