缩放以匹配大小

时间:2013-06-25 12:24:56

标签: c++ opengl pixel formula rectangles

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

我所拥有的给定值是:

大矩形:

  1. 宽度
  2. 身高(我不认为这是必要的)
  3. 点(即x,y)
  4. 小矩形:

    1. 宽度(不是真正的只读,但仍然取决于)
    2. 身高(只读)
    3. 比例(我需要一个公式来计算这个值)
    4. 值与屏幕像素有关。

      enter image description here

2 个答案:

答案 0 :(得分:2)

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

这应该会给你最大的scale,它仍然适合大的矩形。

答案 1 :(得分: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答案以获取比例。