Масштабирование в соответствии с размером

Мне нужна формула для масштабирования прямоугольника, чтобы соответствовать большему /Шире прямоугольник. Мне нужно беспокоиться только о маленьком прямоугольнике.

Приведенные значения только у меня есть:

Большой прямоугольник:

  1. ширина
  2. высота (я не думаю, что это необходимо)
  3. точка (то есть х, у)

Маленький прямоугольник:

  1. ширина (не только для чтения, но все еще зависит)
  2. высота (только чтение)
  3. масштаб (Мне нужна формула, чтобы вычислить, какое это будет значение)
  4. точка

Значения относятся к пикселям экрана.

введите описание изображения здесь

0

Решение

найти

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 ответ только для получения масштаба.

1

Другие решения

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

Это должно дать вам самый большой scale это все еще соответствует маленькому прямоугольнику внутри большого.

2

По вопросам рекламы [email protected]