0

我需要一个公式来缩放矩形以适应更大/更宽的矩形。我只需要担心小矩形。

只有我拥有的给定值是:

大矩形:

  1. 宽度
  2. 高度(我认为不需要)
  3. 点(即 x,y)

小矩形:

  1. 宽度(不是真正的只读,但仍然取决于)
  2. 高度(只读)
  3. 规模(我需要一个公式来计算这是什么值)
  4. 观点

值是相对于屏幕像素的。

在此处输入图像描述

4

2 回答 2

2
scale = min(big.width/small.width, big.height/small.height)

那应该给你最大scale的仍然适合大矩形内的小矩形。

于 2013-06-25T12:59:22.797 回答
1

寻找

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 答案以获取仅规模。

于 2013-06-25T12:43:16.307 回答