Я пытаюсь понять систему координат кварца 2d, в настоящее время я читаю справочное руководство Apple и старую книгу "Графика кварца 2d для разработчика Mac OS X".
Я понимаю концепцию пространства пользователя и пространства устройства, что пространство устройства может иметь различную систему координат по умолчанию, а координаты пространства устройства не могут быть изменены, и мы отображаем пространство пользователя, изменяя его систему координат, присоединяясь к устройство-пространство для достижения желаемого результата.
Quartz 2d graphics для Mac OS X В книге разработчиков написано:
При преобразовании системы координат, у вас должен быть другой
система координат для сравнения. Преобразование обеспечивает
относительное отображение из одной системы координат в другую. Когда ты
нарисовать в преобразованной системе координат, преобразование отображает
рисунок обратно в первую систему координат . Появление этого
На графику в фиксированной системе координат влияет
преобразование.
Я не получил этот пункт жирным шрифтом.
И
Руководство по программированию кварцевого 2D говорит:
Кварц обеспечивает независимость устройства с помощью отдельной координаты
система - пространство пользователя - сопоставление его с системой координат выходных данных
устройство - пространство устройства - с использованием текущей матрицы преобразования или CTM.
матрица - это математическая конструкция, используемая для эффективного описания множества
связанных уравнений. Текущая матрица преобразования
конкретный тип матрицы называется аффинным преобразованием, которое отображает
указывает из одного координатного пространства в другое, применяя перевод,
операции поворота и масштабирования (вычисления, которые перемещаются, вращаются и
изменить размер системы координат).
Текущая матрица преобразования имеет вторичное назначение: она позволяет
вам преобразовать, как объекты нарисованы. Например, нарисовать коробку
повернув на 45 градусов, вы поворачиваете систему координат страницы
(CTM), прежде чем нарисовать коробку. Кварц притягивает к выходному устройству
используя повернутую систему координат.
Путаница заключается в том, что "Кварц обращается к устройству вывода с использованием повернутой системы координат." У нас целые координаты повернуты, каждая фигура будет повернута?
Я пробую разные эксперименты, но не могу обернуть голову вокруг этого, я создаю изображение, чертя две линии, копируя нижнюю левую систему координат в фотошопе, а затем добавляю в свой проект, чтобы увидеть, как координаты ведут себя, вызывая CGContextRotateCTM(myContext, 45);
в методе drawrect, но он ничего не сделал с изображением, которое я включил в xib-файл, используя конструктор интерфейса, помещая изображение в uiimage.
этот код взят из руководства по программированию кварцевых 2D
CGContextRef myContext = UIGraphicsGetCurrentContext();
CGRect contextRect = self.bounds;
CGContextTranslateCTM(myContext, 0, contextRect.size.height);
CGContextRotateCTM(myContext, 45); //my modification
CGContextScaleCTM(myContext, 1, -1);
float w, h;
w = contextRect.size.width;
h = contextRect.size.height;
CGAffineTransform myTextTransform;
CGContextSelectFont (myContext, "Helvetica-Bold", h/10, kCGEncodingMacRoman);
CGContextSetCharacterSpacing (myContext, 10);
CGContextSetTextDrawingMode (myContext, kCGTextFillStroke);
CGContextSetRGBFillColor (myContext, 0, 1, 0, .5);
CGContextSetRGBStrokeColor (myContext, 0, 0, 1, 1);
myTextTransform = CGAffineTransformMakeRotation(0);
CGContextSetTextMatrix (myContext, myTextTransform);
CGContextShowTextAtPoint (myContext, 0, 50, "Quartz 2D", 9);
но этот код изменяет текст, нарисованный на экране, а не изображение, которое я добавил?
Это также из руководства по программированию Quartz 2D:
... применить преобразование, которое переводит начало координат в верхний левый
угол контекста PDF и масштабирует координату y на -1.
Использование масштабного преобразования для отрицания y-координаты изменяет некоторые
условности в Кварцевом рисунке. Например, если вы звоните
CGContextDrawImage, чтобы нарисовать изображение в контексте, изображение
изменено преобразованием, когда оно обращается в пункт назначения. ...
Я уже делаю это с -1, но это никак не влияет на изображение, и это с -1 все еще мне не понятно.
Я несколько раз читал этот документ, пытался выполнить поиск в Google, но нет полезного учебника, а также нет последних доступных книг, только книги, написанные в 2004, 2005, 2006 годах. Может ли кто-нибудь помочь с этим или может дать мне полезные ресурсы для изучения это в глубину.
Deотчаянно жду ответов, очень нужна помощь.Спасибо.