#iphone #uiscrollview #uiimageview #drawing #uiimage
#iPhone #uiscrollview #uiimageview #рисование #uiimage
Вопрос:
У меня есть XML-файл, подобный:
<PointCollection>
<Point x="2453.553575623344" y="1011.755461592671"/>
<Point x="2260.662874593102" y="1102.865398167724"/>
<Point x="2259.547233128629" y="1276.871740662439"/>
<Point x="2293.490150676198" y="1444.799859055673"/>
<Point x="2375.667740528206" y="1696.692036645525"/>
<Point x="2480.350615792477" y="1865.216215309236"/>
<Point x="2757.972180274506" y="1877.125440451022"/>
<Point x="2939.521225544476" y="1715.15279036209"/>
<Point x="3052.739622134972" y="1443.013389711065"/>
<Point x="2997.359072452096" y="1135.740662438337"/>
<Point x="2774.050404375987" y="1030.338971106413"/>
</PointCollection>
Мне нужно нарисовать линии между этими точками и создать фигуру поверх UIImage, чтобы прокомментировать определенную область на этом изображении.Например, я собираюсь нарисовать линию между точкой x = «2453.553575623344» y = «1011.755461592671» и точкой x = «2260.662874593102» y = «1102.865398167724», которые имеют координаты x и y в соответствии с разрешением изображения. Как я могу это сделать?
Спасибо.
Комментарии:
1. вы с чего-нибудь начали? Это не второстепенный проект, и мы не собираемся делать это за вас.
2. Начните с просмотра рисунка с
drawRect
3. @Jesse Naugher, я уже в середине проекта, и я просто новичок в рисовании, просто спросил мнение. Для будущих вопросов я нахожу руководство, которое может быть полезным: techotopia.com/index.php /…
Ответ №1:
Вкратце, вы должны:
- Определите, какую часть пространства модели вы хотите отобразить на своем изображении.
- Из контекста рисования получите текущее значение
CGContextRef
(UIGraphicsGetCurrentContext()
на iOS). - Переведите и масштабируйте свою систему координат, манипулируя текущей матрицей преобразования (CTM), чтобы вы могли рисовать в терминах координат модели, а не растровых координат. Изменение системы координат для вашего чертежа позволяет системе выполнить все расчеты, чтобы вписать ваши линии в фактические фрагменты изображения.
- Затем, несколько раз:
- Используйте
CGPath
/CGMutablePath
для описания формы. - Установите цвет обводки / заливки (или любой из многих других параметров).
- Обведите / заполните контур соответствующим образом.
- Используйте
Обратите внимание, что если вы рисуете поверх существующего изображения, а не создаете полностью новое изображение, возможно, вам захочется нарисовать текущее изображение на чистом холсте перед преобразованием CTM.
Возможно, вы ничего из этого не поймете, пока не прочитаете о рисовании с использованием CoreGraphics. Ознакомьтесь с Руководством по программированию Quartz 2D для получения хорошего обзора рисования 2D-изображений с использованием CoreGraphics.