Форум программистов, компьютерный форум CyberForum.ru

Вписывание CGsize в другой CGsize с сохранением пропорций - Objective-C

Восстановить пароль Регистрация
 
noname_club
 Аватар для noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 577
05.08.2013, 18:49     Вписывание CGsize в другой CGsize с сохранением пропорций #1
Скажем, у нас есть большой прямоугольник

если нам надо его вписать в маленький прямоугольник с сохранением пропорций, тогда составим велосипед вписывания :

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-(CGSize) generateScaleSizeBYRectangleBorder: (CGSize) rectSize
                                    ItemSize: (CGSize) ItemSize {
    if (ItemSize.height<=rectSize.height && ItemSize.width<=rectSize.width) {
        return ItemSize;
    }
    
    // анализ высоты
    if (ItemSize.height>rectSize.height) {
        // обнаружено превышение, применяем сдвиг
        float dh = ItemSize.width / ItemSize.height;
        ItemSize.height = rectSize.height;
        ItemSize.width = rectSize.height * dh;
    }
    
    // анализ ширины
    if (ItemSize.width>rectSize.width) {
        // обнаружено превышение, применяем сдвиг
        float dw = ItemSize.height / ItemSize.width;
        ItemSize.width = rectSize.width;
        ItemSize.height = rectSize.width * dw;
    }
    return ItemSize;
}
Objective-C
1
2
3
CGSize s = [self generateScaleSizeBYRectangleBorder:CGSizeMake(100, 100) ItemSize:CGSizeMake(500, 200)];
    
    NSLog(@"s %f %f",s.width, s.height);
хотелось бы узнать: можно ли встроенными средствами CoreGraphics посчитать САБЖ ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2013, 18:49     Вписывание CGsize в другой CGsize с сохранением пропорций
Посмотрите здесь:

Картинка на всю высоту с сохранением пропорций HTML, CSS
MS Access Как перенести файл mdb на другой комп с сохранением настроек??????????
Вписывание эллипса в четырёхугольник C#
Objective-C Передача инициализированных переменных из одного класса в другой (objective c, XCODE 5.0.2)
про смену харда с сохранением данных на другой
Скопировать данные с одного листа на другой с сохранением всего форматирования VBA
Скопировать данные с одного листа на другой с сохранением всего форматирования VBA
Visual Basic .NET Автоматическое изменение размера формы с сохранением пропорций элементов
PHP Изменить размер изображения с сохранением пропорций, обрезав лишнее
PHP Загрузка картинок с сохранением пропорций
Изменение размера элемента с сохранением его пропорций Delphi
Распахивание окна программы на внсь экран с сохранением пропорций C++ Builder

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
05.08.2013, 18:57     Вписывание CGsize в другой CGsize с сохранением пропорций #2
Цитата Сообщение от noname_club Посмотреть сообщение
нам надо его вписать в маленький прямоугольник с сохранением пропорций
А где код отрисовки? Может я не понял что это вообще такое?
Есть функция CGRectInset...

Правда, не понял что хотел поведать автор.
noname_club
 Аватар для noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 577
05.08.2013, 19:01  [ТС]     Вписывание CGsize в другой CGsize с сохранением пропорций #3
рисовать ничего не надо. чисто голые расчеты размеров.

поясняющий рисунок

Вписывание CGsize в другой CGsize с сохранением пропорций
noname_club
 Аватар для noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 577
06.08.2013, 07:56  [ТС]     Вписывание CGsize в другой CGsize с сохранением пропорций #4
судя по списку официальных функций.

ни одна не умеет, скажем, умножить размер на один и тот же множитель.

Тема закрыта. Задача решается только через пользовательский код, без применения CGGeometry
Yandex
Объявления
06.08.2013, 07:56     Вписывание CGsize в другой CGsize с сохранением пропорций
Ответ Создать тему
Опции темы

Текущее время: 05:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru