Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
noname_club
104 / 95 / 12
Регистрация: 01.05.2013
Сообщений: 600
#1

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

05.08.2013, 18:49. Просмотров 833. Ответов 3
Метки нет (Все метки)

Скажем, у нас есть большой прямоугольник

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

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 посчитать САБЖ ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2013, 18:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вписывание CGsize в другой CGsize с сохранением пропорций (Objective-C):

Масштабирование с сохранением пропорций
Господа, можно ли добиться такогоже эффекта но без использование JS, на чистом...

Загрузка картинок с сохранением пропорций
Задача такая нужно загружать в цикле картинки, перетаскиванием в область. При...

Алгоритм уменьшения изображения с сохранением пропорций
Приветствую. Имеется набор картинок произвольного разрешения, подскажите...

Деление частоты импульсов с сохранением пропорций
Доброго времени суток, форумчане. В делителе частоты на 2 нужно чтобы...

Картинка на всю высоту с сохранением пропорций
У меня fixed-блок, в нём картинка, которая должна быть на всю высоту, но...

Изменение размера элемента с сохранением его пропорций
Помогите решить задачку. Есть Panel. На нем отображается видео. Я хочу сделать...

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

Правда, не понял что хотел поведать автор.
0
noname_club
104 / 95 / 12
Регистрация: 01.05.2013
Сообщений: 600
05.08.2013, 19:01  [ТС] #3
рисовать ничего не надо. чисто голые расчеты размеров.

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

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

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

Тема закрыта. Задача решается только через пользовательский код, без применения CGGeometry
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2013, 07:56
Привет! Вот еще темы с решениями:

Загрузка видеофайла в окно флэша - с сохранением пропорций
Добрый день, форумчане. Помогите решить вопрос. У меня есть флэшфайл fla,...

Изменить размер изображения с сохранением пропорций, обрезав лишнее
Доброго времени суток! Не знаете - есть ли библиотека или готовая функция,...

Автоматическое изменение размера формы с сохранением пропорций элементов
Здравствуйте! Нужна помощь, есть программа с большим количеством форм. Все...

Распахивание окна программы на внсь экран с сохранением пропорций
Программу пишу на Embarcadero RAD Studio 10.1 Berlin Нужно чтобы программа...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru