Форум программистов, компьютерный форум, киберфорум
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
noname_club
103 / 94 / 10
Регистрация: 01.05.2013
Сообщений: 598
#1

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

05.08.2013, 18:49. Просмотров 796. Ответов 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):

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

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

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

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

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

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

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

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

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

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

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

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

про смену харда с сохранением данных на другой - Жесткие диски
нынешний хард скоро нагнётся решил купить новый, а всё заново переустанавливать желания особого нет. Вопрос такой: есть ли вариант...

Скопировать данные с одного листа на другой с сохранением всего форматирования - VBA
Всем привет. Есть 2 файла: общий и свод. В файле общий есть следующие листы: макросы, общий1, общий2. В файле свод есть много листов,...

Как перенести файл mdb на другой комп с сохранением настроек?????????? - MS Access
Вообщем у меня на компе есть настроенная БД mdb формата. Там настроен список пользователей и разрешений им на доступ (т.е. чтение,...

Скопировать данные с одного листа на другой с сохранением всего форматирования - VBA
Добрый день, уважаемые форумчане! Прошу вас о помощи. Имеется таблица, и по нажатию на кнопку на одном из листов создается новый...


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

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

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