2015-08-17 46 views
0

我需要爲不能保證軸對齊的形狀生成邊界框。每個形狀都有一個點,表示邊界框應該有一個面的「前」。從起點(SVG)生成邊界框

簡而言之,這種形狀/邊框:

enter image description here

需要最後看起來是這樣的:

enter image description here

不幸的是,自己的形狀沒有轉化隨着它們的旋轉,它們就是這樣畫出來的,所以我只剩下一個奇點來試圖確定邊界框應該在哪裏。

對此有何意見?如果知道這很有幫助,這些圖形在SVG中定義,並且正在使用Github上的vvvv/SVG庫在C#實現中進行處理。

回答

1

這個問題叫做「Oriented Bounding Box」 - 如果你想搜索那個。在2D中執行此操作相當容易(算法速度很快) - 在更高維度上要難得多。 2D版使用Rotating Calipers Algorithm

1

如果您知道邊界框需要對準面部,然後你只需要:

  1. 計算出臉部的角度,比方說,X軸
  2. 通過旋轉形狀該角度以便表面軸對齊
  3. 計算邊界框(最小和最大X & Ys)
  4. 旋轉四個邊界框的拐角。