我需要一个公式来缩放一个矩形,以适应更大的/ 更宽的矩形。我只需要担心小矩形。缩放以匹配大小
给定的值只有我已经是:
大矩形:
- 宽度
- 高(我不认为这是需要)
- 点(即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