iOS. Приемы программирования
Шрифт:
Результат показан на рис. 17.18. Как видите, удалось успешно отрисовать обе линии, не перемещая перо для отрисовки второй линии.
Точка соединения двух линий называется перемычкой (Join). Работая с Core Graphics, можно указывать тип перемычки, которую вы хотите сделать между линиями, сочлененными друг с другом. Для выбора такого типа используется процедура CGContextSetLineJoin. Она принимает два параметра: во-первых, графический контекст, в котором вы задаете перемычку такого типа, а во-вторых, сам тип перемычки, CGLineJoin. CGLineJoin — это перечень следующих значений:
Рис. 17.18. Одновременно отрисовываем две линии
• kCGLineJoinMiter — на месте перемычки образуется острый угол. Этот тип задается по умолчанию;
• kCGLineJoinBevel — угол на месте перемычки линий будет немного спрямлен, как будто обтесан;
• kCGLineJoinRound — как понятно из названия, такая перемычка — скругленная.
Рассмотрим пример. Допустим, мы хотим написать программу, способную отрисовывать в графическом контексте «скатные крыши», каждая из которых иллюстрировала бы определенный тип перемычки между линиями, а также выводить под «крышей» текст с названием используемой перемычки. В результате получится рисунок, напоминающий рис. 17.19.
Рис. 17.19. Три типа перемычек между линиями, существующие в Core Graphics
Для решения этой задачи я написал метод drawRooftopAtTopPointof: textToDisplay: lineJoin:, принимающий три параметра:
• точку, в которой должна располагаться верхушка «крыши»;
• текст, отображаемый под «крышей»;
• используемый тип перемычки.
Код будет таким:
Простые смертные
Интеллектуальный бестселлер. Читает весь мир.
Фантастика:
социально-философская фантастика
рейтинг книги
Масоны
Проза:
русская классическая проза
рейтинг книги
Лекарь Империи 9
9. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
рейтинг книги
"Фантастика 2023-193". Компиляция. Книги 1-24
Фантастика 2023. Компиляция
Фантастика:
фэнтези
боевая фантастика
попаданцы
рейтинг книги
(сборник)
рейтинг книги
Я царь. Книга XXVIII
28. Дорогой барон!
Фантастика:
боевая фантастика
аниме
попаданцы
рейтинг книги
Журнал «Если», 1998 № 09
9. Журнал Если
Фантастика:
научная фантастика
рейтинг книги
Осквернитель
4. Экзорцист
Фантастика:
фэнтези
боевая фантастика
рейтинг книги
Легенды грустный плен. Сборник
Фантастика:
фэнтези
научная фантастика
рейтинг книги
Иллюстрированная Библия. Ветхий Завет
Религия и эзотерика:
религия
рейтинг книги
ХРАНИТЕЛЬНИЦА
Фантастика:
фэнтези
юмористическая фантастика
рейтинг книги
Улав, сын Аудуна из Хествикена
1. Улав, сын Аудуна
Проза:
классическая проза
историческая проза
рейтинг книги