我需要一個公式來縮放一個矩形,以適應更大的/ 更寬的矩形。我只需要擔心小矩形。縮放以匹配大小
給定的值只有我已經是:
大矩形:
- 寬度
- 高(我不認爲這是需要)
- 點(即X,Y)
小矩形:
- 寬度(不是真的只讀,但還是要看)
- 高度(只讀)
- 規模(我需要一個公式來計算這會是什麼值)
- 點
值是相對於屏幕像素。
我需要一個公式來縮放一個矩形,以適應更大的/ 更寬的矩形。我只需要擔心小矩形。縮放以匹配大小
給定的值只有我已經是:
大矩形:
小矩形:
值是相對於屏幕像素。
查找
a = width1/height1;
b = width2/height2;
if(a>b)
{
scale = height1/height2;
point.y = y; (from big rectangle)
point.x = (width1 - width2 * scale)/2 + x;
}
else
{
scale = width1/width2;
point.x = x; (from big rectangle)
point.y = (height1 - height2 * scale)/2 + y;
}
據我所知,這應該做你想要的東西。
編輯:請參閱PureW答案僅獲取比例。
我不想改變大矩形的任何屬性,只有小矩形應該根據大矩形的寬度進行調整 – mr5
那就是我在那裏做的......雖然你的解釋並不徹底,所以上面的「比例尺」段是您需要應用在小矩形的寬度和高度上的倍數,以使其適合大矩形的高度或寬度(取決於比率)。大矩形是永遠不會碰... – SinisterMJ
啊,我只是誤解'''x''''''''。但是我只需要改變'scale',因爲我已經有了一個以小矩形爲中心(調整x,y)的函數。 – mr5
scale = min(big.width/small.width, big.height/small.height)
這應該給你最大的scale
,仍然適合大的內部的小矩形。
+1適合我的簡單問題。沒想到它有多簡單。但安東羅斯的答案有更多的努力= P – mr5
你能舉一個你想要的例子嗎?你熟悉'max'和'min'函數嗎? – Beta
@Beta我試圖實現一個'標籤'就像在Windows窗體中,因爲我正在做我自己的用戶界面。不,我不知道,也不知道如何在配方中使用它。 – mr5