2014-10-28 53 views
2

我已經找到許多解答如何計算旋轉矩形的邊界框的解答問題,但是我需要做的事情幾乎是相反。如何計算外部矩形在旋轉時的大小,並且必須完全包含內部矩形

紅色矩形A被描述爲:

var box = { 
     x : 0, 
     y : 0, 
     w : 100, 
     h : 200 
}; 

和藍色矩形B的尺寸恰好相同,當它是不旋轉。

鑑於矩形B繞其中心點旋轉,並且,它的角度以弧度,如何能夠計算出最小大小的矩形B可以是當矩形A必須總是適合在其內部,同時保持其原有的縱橫比(如前面提到的,同爲矩形A

enter image description here

+0

*嘆息*,你可能能夠告訴數學不是我的強項。非常感謝你。如果你想把它寫成答案,我當然會授予你。 – gordyr 2014-10-28 11:23:30

+0

@AndrewMorton我不這麼認爲。他不是搜索任意的邊界框,而是搜索具有相同高寬比的矩形。所以它不是同一個問題。但是,如果他將其旋轉回去,找到最小的邊界矩形,那麼他可以取其一邊並調整其他邊以調整縱橫比。做與另一方相同,並選擇較小的選擇作爲最終結果... – Spektre 2014-10-28 11:26:57

+0

@Spektre你是正確的......我的評論爲時尚早,我仍然在尋找答案。關於寬高比提到的地方,它是我聲明矩形B與矩形A沒有旋轉時尺寸完全相同的地方。我會稍微澄清一下這個問題。 – gordyr 2014-10-28 11:34:26

回答

2

如果標記矩形的邊和一個額外的行畫(綠色圖中),你可以看到你需要計算一下:

enter image description here

所以C = A * cos(θ)+ B * SIN(θ)

和d = B * C/A

+0

我想即使有了這個,你必須嘗試兩種選擇,並選擇最小的一個。 (空間也可以在側面而不是上/下) – Spektre 2014-10-28 12:36:04

+0

是的,爲了使它在各個角度都能工作,它需要檢查。 – gordyr 2014-10-28 12:44:45