Преобразование формы с помощью Quartz (iOS) - PullRequest
3 голосов
/ 07 июля 2011

Мне нужно запрограммировать инструмент для рисования, который должен отображать фигуры на плоскости.Эти фигуры могут быть произвольными, например, эллипс или куб, или изображением, которое будет нарисовано на плоскости.

Что мне нужно сделать, так это использовать маркеры, расположенные вокруг этих фигур,преобразовать их, перемещая маркеры.Так, например, предполагая, что у меня есть четыре маркера, расположенных сверху, снизу, слева и справа, я должен иметь возможность растягивать форму по горизонтали, перемещая маркеры влево и вправо.

Я не могу использовать геометрические свойстваформа (например, изменение радиуса эллипса), так как я должен быть в состоянии сделать это на произвольных формах (например, на изображениях).

У меня нет большого опыта в алгоритмах манипулирования изображениями, может любойодин дает мне несколько советов, с чего начать?В конце концов, лучшая практика, чтобы сделать это хорошо или даже хороший алгоритм, чтобы сделать это?

Я разрабатываю для платформы iOS.

Ответы [ 2 ]

0 голосов
/ 08 августа 2013

Вот как вы рисуете на UIImage

UIGraphicsBeginImageContext(CGSizeMake(width, height)); 
// do your drawing operations
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext();

Вот как вы можете масштабировать это изображение

UIGraphicsBeginImageContext(CGSizeMake(scaledWidth, scaledHeight)); 
[image drawInRect:CGRectMake(0,0, scaledWidth, scaledHeight)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext();

Вам не нужно делать это в два этапа - вы можете просто нарисовать каждый предмет в масштабе. Это было бы лучше для рисования без изображения.

Если вам нужен CGContextRef для рисования, вы можете использовать это

CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];
0 голосов
/ 28 июля 2011

Вы ознакомились с Руководством по программированию Quartz 2D в Apple Developer Center ?

...