簡體   English   中英

旋轉圖像的最小可能邊界框

[英]Smallest possible bounding box for a rotated image

假設我有一些寬度為w1且高度為h1的任意輸入圖像。 我想將此圖像一直繞360度旋轉回到起始位置。 但是,如果圖像不是圓形,則如果將其繪制在畫布上的圖像的尺寸保持為w1 x 1 ,則圖像的邊緣將被剪切。

數字

然后,我需要確定可用於輸入圖像的所有旋轉版本的畫布大小(寬度w2和高度h2 )。 我知道w2 == h2 ,因此所需的畫布大小是一個正方形,因為很明顯,我們正在圍繞某個中心點旋轉某些東西,並且最終圖像(在360度旋轉之后)實質上是一個圓形。

要考慮的另一件事是,諸如正方形的對象將具有會伸出的角,因此僅對兩個尺寸使用width或height的最大值也不起作用。

我想出的一種解決方案是創建比我需要的畫布更大的畫布(例如,通過將w2h2設置為max(w1, h1) * 2 ,旋轉所有內容,然后修剪所有透明像素。這不是很有效而且我更希望能夠預先計算出最緊密的邊界框。

這是一個幾何問題。 從本質上講,您想要找到可以刻有原始畫布的圓的直徑(d),然后w2 = h2 = d

這樣一個圓的直徑將是√(w1^2+h1^2)

所以w2 = h2 = √(w1^2+h1^2)

另外,為避免剪切,您可能希望對結果進行上限而不是四舍五入。

如果圖像旋轉成正方形,則必須使畫布的高度和寬度與斜邊的長度相同。

w = h = sqrt(h ^ 2 + w ^ 2)

(我不知道動作腳本)

但是,如果您所擁有的圖像不在正方形中,那么您實際上必須找到離中心最遠的點...

PS:很晚了,我正在逛逛,所以對不起,如果這是錯誤的。

您的畫布必須是正方形。

如果要圍繞任意點(在本示例中為點A)旋轉像綠色圖形這樣的物體,則正方形的邊是到物體中與A的最遠點的距離的兩倍。

替代文字

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM