Рисование линий между точками в UIImage

#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.