Ссылка CGPath
Графический контур является математическим описанием серии форм или строк. CGPathRef
определяет непрозрачный тип, представляющий неизменный графический контур. CGMutablePathRef
определяет непрозрачный тип, представляющий непостоянный графический контур. Ни один CGPathRef
ни CGMutablePathRef
определите функции для рисования пути. Для рисования Кварцевого пути к графическому контексту Вы добавляете путь к графическому контексту путем вызова CGContextAddPath
и затем вызовите одну из функций получения контекста — см. Ссылку CGContext.
Каждое число в графическом контуре создается со связанным набором строк и кривых Bézier, названных подпутем. Подпуть имеет упорядоченный набор элементов пути, представляющих единственные шаги в конструкции подпути. (Например, линейный сегмент от одного угла прямоугольника к другому углу является элементом пути. Каждый подпуть включает начальную точку, которая является первой точкой по подпути. Путь также поддерживает текущую точку, которая является последней точкой по последнему подпути.
Для добавления нового подпути на непостоянный путь приложение обычно вызывает CGPathMoveToPoint
установить начальную точку подпути и начальную текущую точку, сопровождаемую серией CGPathAdd*
вызовы для добавления линейных сегментов и кривых к подпути. Поскольку сегменты или кривые добавляются к подпути, текущая точка подпути обновляется для указания до конца последнего сегмента или кривой, которая будет добавлена. Строки и кривые подпути всегда соединяются, но они не обязаны формировать замкнутое множество строк. Ваше приложение явно закрывает подпуть путем вызова CGPathCloseSubpath
. Закрытие подпути добавляет линейный сегмент, завершающийся в начальной точке подпути, и также изменяющийся, как те строки представляются — для получения дополнительной информации посмотрите Пути в Кварце 2D Руководство по программированию.
-
Создает непостоянный графический контур.
Объявление
Swift
func CGPathCreateMutable() -> CGMutablePath!
Objective C
CGMutablePathRef CGPathCreateMutable ( void );
Возвращаемое значение
Новый непостоянный путь. Вы ответственны за выпуск этого объекта.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Создайте неизменный путь эллипса.
Объявление
Swift
func CGPathCreateWithEllipseInRect(_
rect
: CGRect, _transform
: UnsafePointer<CGAffineTransform>) -> CGPath!Objective C
CGPathRef CGPathCreateWithEllipseInRect ( CGRect rect, const CGAffineTransform *transform );
Параметры
rect
Прямоугольник, ограничивающий эллипс.
transform
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к эллипсу, прежде чем это будет добавлено к пути.Возвращаемое значение
Новый, неизменный путь. Вы ответственны за выпуск этого объекта.
Обсуждение
Это - функция удобства, создающая путь эллипса. Используя это удобство функция более эффективна, чем создание непостоянного пути и добавление эллипса к нему.
Эллипс приближен последовательностью кривых Bézier. Его центр является средней точкой прямоугольника, определенного
rect
параметр. Если прямоугольник является квадратным, то эллипс является проспектом с радиусом, равным половине ширины (или высота) прямоугольника. Еслиrect
параметр указывает прямоугольную форму, тогда главные и незначительные оси эллипса определяются шириной и высотой прямоугольника.Эллипс формирует полный подпуть пути — т.е. получение эллипса запускается с перемещения - к работе и заканчивается работой подпути завершения всеми перемещениями, ориентированными в направлении по часовой стрелке. При предоставлении аффинного преобразования то созданные кривые Bézier, определяющие эллипс, преобразовываются, прежде чем они будут добавлены к пути.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.7 и позже.
-
Создайте неизменный путь прямоугольника.
Объявление
Swift
func CGPathCreateWithRect(_
rect
: CGRect, _transform
: UnsafePointer<CGAffineTransform>) -> CGPath!Objective C
CGPathRef CGPathCreateWithRect ( CGRect rect, const CGAffineTransform *transform );
Параметры
rect
Прямоугольник для добавления.
transform
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к прямоугольнику, прежде чем это будет добавлено к пути.Возвращаемое значение
Новый, неизменный путь. Вы ответственны за выпуск этого объекта.
Обсуждение
Это - функция удобства, создающая путь прямоугольника. Используя это удобство функция более эффективна, чем создание непостоянного пути и добавление прямоугольника к нему.
Прямоугольник создается с помощью следующей последовательности операций:
// start at origin
CGPathMoveToPoint (path, transform, CGRectGetMinX(rect), CGRectGetMinY(rect));
// add bottom edge
CGPathAddLineToPoint (path, transform, CGRectGetMaxX(rect), CGRectGetMinY(rect));
// add right edge
CGPathAddLineToPoint (path, transform, CGRectGetMaxX(rect), CGRectGetMaxY(rect);
// add top edge
CGPathAddLineToPoint (path, transform, CGRectGetMinX(rect), CGRectGetMaxY(rect));
// add left edge and close
CGPathCloseSubpath (path);
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.5 и позже.
-
Создайте неизменный путь скругленного прямоугольника.
Объявление
Swift
func CGPathCreateWithRoundedRect(_
rect
: CGRect, _cornerWidth
: CGFloat, _cornerHeight
: CGFloat, _transform
: UnsafePointer<CGAffineTransform>) -> CGPath!Objective C
CGPathRef CGPathCreateWithRoundedRect ( CGRect rect, CGFloat cornerWidth, CGFloat cornerHeight, const CGAffineTransform *transform );
Параметры
rect
Прямоугольник для добавления.
cornerWidth
Ширина разделов скругленного угла.
cornerHeight
Высота разделов скругленного угла.
transform
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к прямоугольнику, прежде чем это будет добавлено к пути.Возвращаемое значение
Новый, неизменный путь. Вы ответственны за выпуск этого объекта.
Обсуждение
Это - функция удобства, создающая путь скругленного прямоугольника. Используя это удобство функция более эффективна, чем создание непостоянного пути и добавление прямоугольника к нему.
Каждый угол скругленного прямоугольника является одной четвертью эллипса с осями, равными
cornerWidth
иcornerHeight
параметры. Скругленный прямоугольник формирует полный подпуть и ориентирован в направлении по часовой стрелке.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.9 и позже.
-
Создает неизменную копию графического контура.
Объявление
Swift
func CGPathCreateCopy(_
path
: CGPath!) -> CGPath!Параметры
path
Путь к копии.
Возвращаемое значение
Новая, неизменная копия указанного пути. Вы ответственны за выпуск этого объекта.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Создает неизменную копию графического контура, преобразованного матрицей преобразования.
Объявление
Swift
func CGPathCreateCopyByTransformingPath(_
path
: CGPath!, _transform
: UnsafePointer<CGAffineTransform>) -> CGPath!Objective C
CGPathRef CGPathCreateCopyByTransformingPath ( CGPathRef path, const CGAffineTransform *transform );
Параметры
path
Путь к копии.
transform
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию ко всем элементам нового пути.Возвращаемое значение
Новая, неизменная копия пути. Вы ответственны за выпуск этого объекта.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.7 и позже.
-
Создает штриховую копию другого пути.
Объявление
Swift
func CGPathCreateCopyByDashingPath(_
path
: CGPath!, _transform
: UnsafePointer<CGAffineTransform>, _phase
: CGFloat, _lengths
: UnsafePointer<CGFloat>, _count
: UInt) -> CGPath!Objective C
CGPathRef CGPathCreateCopyByDashingPath ( CGPathRef path, const CGAffineTransform *transform, CGFloat phase, const CGFloat *lengths, size_t count );
Параметры
path
Путь к копии.
transform
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к элементам преобразованного пути прежде, чем добавить их к новому пути.phase
Значение, указывающее, как далеко в пунктирный узор строка запускается в модулях пространства пользователя. Например, передавая значение
3
означает, что линия проведена с пунктирным узором, запускающимся в трех модулях с его начала. Передача значения0
чертит линию начиная с начала пунктирного узора.lengths
Массив значений, указывающих длины нарисованных сегментов и непокрашенных сегментов, соответственно, пунктирного узора — или
NULL
ни для какого пунктирного узора.Например, передавая массив со значениями
[2,3]
устанавливает пунктирный узор, чередующий между 2 пользовательскими модулями пространства долго красившийся сегмент и 3 пользовательскими модулями пространства длинный непокрашенный сегмент. Передача значений[1,3,4,2]
устанавливает образец в 1 модуль нарисованный сегмент, непокрашенный сегмент с 3 модулями, нарисованный сегмент с 4 модулями и непокрашенный сегмент с 2 модулями.count
Если
lengths
параметр указывает массив, передайте число элементов в массиве. Иначе, передача0
.Возвращаемое значение
Новый, неизменный путь. Вы ответственны за выпуск этого объекта.
Обсуждение
Новый путь создается так, чтобы заполнение нового пути нарисовало те же пиксели как перечеркивание первоначального тракта с указанными параметрами тире.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.7 и позже.
-
Создает перечеркиваемую копию другого пути.
Объявление
Swift
func CGPathCreateCopyByStrokingPath(_
path
: CGPath!, _transform
: UnsafePointer<CGAffineTransform>, _lineWidth
: CGFloat, _lineCap
: CGLineCap, _lineJoin
: CGLineJoin, _miterLimit
: CGFloat) -> CGPath!Objective C
CGPathRef CGPathCreateCopyByStrokingPath ( CGPathRef path, const CGAffineTransform *transform, CGFloat lineWidth, CGLineCap lineCap, CGLineJoin lineJoin, CGFloat miterLimit );
Параметры
path
Путь к копии.
transform
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к элементам преобразованного пути прежде, чем добавить их к новому пути.lineWidth
Ширина строки для использования, в модулях пространства пользователя. Значение должно быть больше, чем
0
.lineCap
Постоянный стиль окончания линии —
kCGLineCapButt
(значение по умолчанию),kCGLineCapRound
, илиkCGLineCapSquare
. Посмотрите“CGLineCap”
.lineJoin
Значение соединения строки —
kCGLineJoinMiter
(значение по умолчанию),kCGLineJoinRound
, илиkCGLineJoinBevel
. Посмотрите“CGLineJoin”
.miterLimit
Предельный угол стыка для использования.
Возвращаемое значение
Новый, неизменный путь. Вы ответственны за выпуск этого объекта.
Обсуждение
Новый путь создается так, чтобы заполнение нового пути нарисовало те же пиксели как перечеркивание первоначального тракта.
Если стиль соединения строки установлен в
kCGLineJoinMiter
, Кварц использует предельный угол стыка, чтобы определить, нужно ли к строкам присоединиться со скосом вместо среза. Кварц делит длину среза шириной строки. Если результат больше, чем предельный угол стыка, Кварц преобразовывает стиль в скос.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.7 и позже.
-
Создает непостоянную копию существующего графического контура.
Объявление
Swift
func CGPathCreateMutableCopy(_
path
: CGPath!) -> CGMutablePath!Objective C
CGMutablePathRef CGPathCreateMutableCopy ( CGPathRef path );
Параметры
path
Путь к копии.
Возвращаемое значение
Новое, непостоянное, копия указанного пути. Вы ответственны за выпуск этого объекта.
Обсуждение
Можно изменить непостоянный графический контур путем вызывания различных функций геометрии CGPath, такой как
CGPathAddArc
,CGPathAddLineToPoint
, иCGPathMoveToPoint
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Создает непостоянную копию графического контура, преобразованного матрицей преобразования.
Объявление
Swift
func CGPathCreateMutableCopyByTransformingPath(_
path
: CGPath!, _transform
: UnsafePointer<CGAffineTransform>) -> CGMutablePath!Objective C
CGMutablePathRef CGPathCreateMutableCopyByTransformingPath ( CGPathRef path, const CGAffineTransform *transform );
Параметры
path
Путь к копии.
transform
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию ко всем элементам нового пути.Возвращаемое значение
Новая, непостоянная копия указанного пути, преобразованного параметром преобразования. Вы ответственны за выпуск этого объекта.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.7 и позже.
-
Декременты сохранить количество графического контура.
Объявление
Objective C
void CGPathRelease ( CGPathRef path );
Параметры
path
Графический контур для выпуска.
Обсуждение
Эта функция эквивалентна
CFRelease
, за исключением того, что это не вызывает ошибку еслиpath
параметрNULL
.Оператор импорта
Objective C
@import CoreGraphics;
Доступность
Доступный в OS X v10.2 и позже.
-
Инкременты сохранить количество графического контура.
Параметры
path
Графический контур для сохранения.
Возвращаемое значение
Тот же путь Вы передали в как
path
параметр.Обсуждение
Эта функция эквивалентна
CFRetain
, за исключением того, что это не вызывает ошибку еслиpath
параметрNULL
.Оператор импорта
Objective C
@import CoreGraphics;
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет дугу к непостоянному графическому контуру, которому возможно предшествует сегмент прямой линии.
Объявление
Swift
func CGPathAddArc(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _x
: CGFloat, _y
: CGFloat, _r
: CGFloat, _startAngle
: CGFloat, _endAngle
: CGFloat, _clockwise
: Bool)Objective C
void CGPathAddArc ( CGMutablePathRef path, const CGAffineTransform *m, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, bool clockwise );
Параметры
path
Непостоянный графический контур для изменения.
m
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к дуге, прежде чем это будет добавлено к пути.x
X-координата центральной точки дуги.
y
Y-координата центральной точки дуги.
r
Радиус дуги.
startAngle
Угол (в радианах), который определяет начальную точку дуги, измеренной от оси X в текущем пространстве пользователя.
endAngle
Угол (в радианах), который определяет конечную точку дуги, измеренной от оси X в текущем пространстве пользователя.
clockwise
Булево значение, указывающее, нарисовать ли дугу в направлении по часовой стрелке, прежде, чем применить матрицу преобразования.
Обсуждение
Дуга является сегментом круга с радиусом r центрируемый в точке
(x,y)
. Когда Вы вызываете эту функцию, Вы обеспечиваете центральную точку, радиус и два угла в радианах. Кварц использует эту информацию для определения конечных точек дуги, и затем приближает новую дугу с помощью последовательности кубических кривых Bézier.clockwise
параметр определяет направление, в котором создается дуга. Фактическое направление может измениться в зависимости от трансформации системы координат, применился к пути.Трансформация может быть применена к кривым Bézier, прежде чем они будут добавлены к пути. Если никакие не преобразовывают, необходим, второй параметр должен быть
NULL
.Если указанный путь уже содержит подпуть, Кварц неявно добавляет строку, подключающую текущую точку подпути к началу дуги. Если путь пуст, Кварц создает новый подпуть с набором начальной точки к начальной точке дуги.
Конечная точка дуги становится новой текущей точкой пути.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет дугу к непостоянному графическому контуру, которому возможно предшествует сегмент прямой линии.
Объявление
Swift
func CGPathAddRelativeArc(_
path
: CGMutablePath!, _matrix
: UnsafePointer<CGAffineTransform>, _x
: CGFloat, _y
: CGFloat, _radius
: CGFloat, _startAngle
: CGFloat, _delta
: CGFloat)Objective C
void CGPathAddRelativeArc ( CGMutablePathRef path, const CGAffineTransform *matrix, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat delta );
Параметры
path
Непостоянный графический контур для изменения.
matrix
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к дуге, прежде чем это будет добавлено к пути.x
X-координата центральной точки дуги.
y
Y-координата центральной точки дуги.
radius
Радиус дуги.
startAngle
Угол (в радианах), который определяет начальную точку дуги, измеренной от оси X в текущем пространстве пользователя.
delta
Расстояние дуга должно переместиться (в радианах). Положительное значение указывает против часовой стрелки дуга в текущем пространстве пользователя.
Обсуждение
Угол к второй конечной точке дуги вычисляется путем добавления дельты к углу запуска.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.7 и позже.
-
Добавляет дугу к непостоянному графическому контуру, которому возможно предшествует сегмент прямой линии.
Объявление
Swift
func CGPathAddArcToPoint(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _x1
: CGFloat, _y1
: CGFloat, _x2
: CGFloat, _y2
: CGFloat, _radius
: CGFloat)Objective C
void CGPathAddArcToPoint ( CGMutablePathRef path, const CGAffineTransform *m, CGFloat x1, CGFloat y1, CGFloat x2, CGFloat y2, CGFloat radius );
Параметры
path
Непостоянный путь к изменению. Путь не должен быть пустым.
m
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к дуге, прежде чем это будет добавлено к пути.x1
X-координата пространства пользователя для конечной точки первой строки касательной. Первая линия касательной проведена от текущей точки до
(x1,y1)
.y1
Y-координата пространства пользователя для конечной точки первой строки касательной. Первая линия касательной проведена от текущей точки до
(x1,y1)
.x2
X-координата пространства пользователя для конечной точки второй строки касательной. Вторая линия касательной проведена от
(x1,y1)
к(x2,y2)
.y2
Y-координата пространства пользователя для конечной точки второй строки касательной. Вторая линия касательной проведена от
(x1,y1)
к(x2,y2)
.radius
Радиус дуги, в координатах пространства пользователя.
Обсуждение
Эта функция использует последовательность кубических кривых Bézier для создания дуги, которая является касательной к строке от текущей точки до (x1, y1) и к строке от (x1, y1) к (x2, y2). Запуск и конечные точки дуги расположены на первых и вторых строках касательной, соответственно. Запуск и конечные точки дуги являются также “точками касательной” строк.
Если текущая точка и первая точка касательной дуги (начальная точка) не равны, Кварц добавляет сегмент прямой линии от текущей точки до первой точки касательной.
Конечная точка дуги становится новой текущей точкой пути.
Для другого способа нарисовать дугу по пути, посмотрите
CGPathAddArc
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет кубическую кривую Bézier к непостоянному графическому контуру.
Объявление
Swift
func CGPathAddCurveToPoint(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _cp1x
: CGFloat, _cp1y
: CGFloat, _cp2x
: CGFloat, _cp2y
: CGFloat, _x
: CGFloat, _y
: CGFloat)Objective C
void CGPathAddCurveToPoint ( CGMutablePathRef path, const CGAffineTransform *m, CGFloat cp1x, CGFloat cp1y, CGFloat cp2x, CGFloat cp2y, CGFloat x, CGFloat y );
Параметры
path
Непостоянный путь к изменению. Путь не должен быть пустым.
m
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к кривой, прежде чем это будет добавлено к пути.cp1x
X-координата первой контрольной точки.
cp1y
Y-координата первой контрольной точки.
cp2x
X-координата второй контрольной точки.
cp2y
Y-координата второй контрольной точки.
x
X-координата конечной точки кривой.
y
Y-координата конечной точки кривой.
Обсуждение
Добавляет кубическую кривую Bézier от текущей точки по пути к указанному расположению с помощью двух контрольных точек, после дополнительной трансформации. Перед возвратом эта функция обновляет текущую точку к указанному расположению
(x,y
).Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет массив сегментов новой строки к непостоянному графическому контуру.
Объявление
Swift
func CGPathAddLines(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _points
: UnsafePointer<CGPoint>, _count
: UInt)Objective C
void CGPathAddLines ( CGMutablePathRef path, const CGAffineTransform *m, const CGPoint points[], size_t count );
Параметры
path
Непостоянный путь к изменению.
m
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к строкам прежде, чем добавить их к пути.points
Массив точек, указывающий линейные сегменты для добавления.
count
Число элементов в массиве.
Обсуждение
Это - функция удобства, добавляющая последовательность связанных линейных сегментов к пути, с помощью следующей работы:
CGPathMoveToPoint (path, m, points[0].x, points[0].y);
for (k = 1; k < count; k++) {
CGPathAddLineToPoint (path, m, points[k].x, points[k].y);
}
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет линейный сегмент к непостоянному графическому контуру.
Объявление
Swift
func CGPathAddLineToPoint(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _x
: CGFloat, _y
: CGFloat)Objective C
void CGPathAddLineToPoint ( CGMutablePathRef path, const CGAffineTransform *m, CGFloat x, CGFloat y );
Параметры
path
Непостоянный путь к изменению. Путь не должен быть пустым.
m
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к строке, прежде чем это будет добавлено к пути.x
X-координата конечной точки строки.
y
Y-координата конечной точки строки.
Обсуждение
Перед возвратом эта функция обновляет текущую точку к указанному расположению
(x,y)
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет путь к на непостоянный графический контур.
Объявление
Swift
func CGPathAddPath(_
path1
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _path2
: CGPath!)Objective C
void CGPathAddPath ( CGMutablePathRef path1, const CGAffineTransform *m, CGPathRef path2 );
Параметры
path1
Непостоянный путь к изменению.
m
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию кpath2
прежде чем это будет добавлено кpath1
.path2
Путь для добавления.
Обсуждение
Если исходный путь непуст, то его элементы пути добавляются в порядке на непостоянный путь. После того, как вызов завершается, стартовая точка и текущая точка пути являются теми из последнего подпути в
path2
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет квадратичную кривую Bézier к непостоянному графическому контуру.
Объявление
Swift
func CGPathAddQuadCurveToPoint(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _cpx
: CGFloat, _cpy
: CGFloat, _x
: CGFloat, _y
: CGFloat)Objective C
void CGPathAddQuadCurveToPoint ( CGMutablePathRef path, const CGAffineTransform *m, CGFloat cpx, CGFloat cpy, CGFloat x, CGFloat y );
Параметры
path
Непостоянный путь к изменению. Путь не должен быть пустым.
m
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к кривой прежде, чем добавить его к пути.cpx
X-координата контрольной точки.
cpy
Y-координата контрольной точки.
x
X-координата конечной точки кривой.
y
Y-координата конечной точки кривой.
Обсуждение
Перед возвратом эта функция обновляет текущую точку к указанному расположению
(x, y)
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет прямоугольник к непостоянному графическому контуру.
Объявление
Swift
func CGPathAddRect(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _rect
: CGRect)Objective C
void CGPathAddRect ( CGMutablePathRef path, const CGAffineTransform *m, CGRect rect );
Параметры
path
Непостоянный путь к изменению.
m
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к прямоугольнику прежде, чем добавить его к пути.rect
Прямоугольник для добавления.
Обсуждение
Это - функция удобства, добавляющая прямоугольник к пути, с помощью следующей последовательности операций:
// start at origin
CGPathMoveToPoint (path, m, CGRectGetMinX(rect), CGRectGetMinY(rect));
// add bottom edge
CGPathAddLineToPoint (path, m, CGRectGetMaxX(rect), CGRectGetMinY(rect));
// add right edge
CGPathAddLineToPoint (path, m, CGRectGetMaxX(rect), CGRectGetMaxY(rect);
// add top edge
CGPathAddLineToPoint (path, m, CGRectGetMinX(rect), CGRectGetMaxY(rect));
// add left edge and close
CGPathCloseSubpath (path);
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет массив прямоугольников к непостоянному графическому контуру.
Объявление
Swift
func CGPathAddRects(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _rects
: UnsafePointer<CGRect>, _count
: UInt)Objective C
void CGPathAddRects ( CGMutablePathRef path, const CGAffineTransform *m, const CGRect rects[], size_t count );
Параметры
path
Непостоянный путь к изменению.
m
Матрица аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к прямоугольникам прежде, чем добавить их к пути.rects
Массив новых прямоугольников для добавления.
count
Число элементов в массиве.
Обсуждение
Это - функция удобства, добавляющая массив прямоугольников к пути, с помощью следующей работы:
for (k = 0; k < count; k++) {
CGPathAddRect (path, m, rects[k]);
}
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет скругленный прямоугольник к непостоянному графическому контуру.
Объявление
Swift
func CGPathAddRoundedRect(_
path
: CGMutablePath!, _transform
: UnsafePointer<CGAffineTransform>, _rect
: CGRect, _cornerWidth
: CGFloat, _cornerHeight
: CGFloat)Objective C
void CGPathAddRoundedRect ( CGMutablePathRef path, const CGAffineTransform *transform, CGRect rect, CGFloat cornerWidth, CGFloat cornerHeight );
Параметры
path
Непостоянный путь к изменению.
transform
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к прямоугольнику прежде, чем добавить его к пути.rect
Прямоугольник для добавления.
cornerWidth
Ширина разделов скругленного угла.
cornerHeight
Высота разделов скругленного угла.
Обсуждение
Это - функция удобства, добавляющая путь скругленного прямоугольника.
Каждый угол скругленного прямоугольника является одной четвертью эллипса с осями, равными
cornerWidth
иcornerHeight
параметры. Скругленный прямоугольник формирует полный подпуть и ориентирован в направлении по часовой стрелке.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.9 и позже.
-
Для каждого элемента в графическом контуре, вызывает пользовательскую applier функцию.
Объявление
Swift
func CGPathApply(_
path
: CGPath!, _info
: UnsafeMutablePointer<Void>, _function
: CGPathApplierFunction)Objective C
void CGPathApply ( CGPathRef path, void *info, CGPathApplierFunction function );
Параметры
path
Путь, к которому будет применена функция.
info
Указатель на пользовательские данные, которые Кварц передаст функции, применяемой, или
NULL
.function
Указатель на функцию для применения. Посмотрите
CGPathApplierFunction
для получения дополнительной информации.Обсуждение
Для каждого элемента по указанному пути Кварц вызывает applier функцию, которая может исследовать (но не изменить), элемент.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Запускает новый подпуть в указанном расположении в непостоянном графическом контуре.
Объявление
Swift
func CGPathMoveToPoint(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _x
: CGFloat, _y
: CGFloat)Objective C
void CGPathMoveToPoint ( CGMutablePathRef path, const CGAffineTransform *m, CGFloat x, CGFloat y );
Параметры
path
Непостоянный путь к изменению.
m
Указатель на матрицу аффинного преобразования, или
NULL
если не необходима никакая трансформация. Если указано, Кварц применяет трансформацию к точке прежде, чем изменить путь.x
X-координата нового расположения.
y
Y-координата нового расположения.
Обсуждение
Эта функция заканчивает подпуть, уже происходящий (если таковые имеются), и запускает новый подпуть, инициализируя начальную точку и текущую точку к указанному расположению (x, y) после дополнительной трансформации.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Завершения и завершают подпуть в непостоянном графическом контуре.
Объявление
Swift
func CGPathCloseSubpath(_
path
: CGMutablePath!)Objective C
void CGPathCloseSubpath ( CGMutablePathRef path );
Параметры
path
Путь к изменению.
Обсуждение
Добавляет строку от текущей точки до начальной точки текущего подпути и заканчивает подпуть.
После закрытия подпути Ваше приложение может начать новый подпуть без первого вызова
CGPathMoveToPoint
. В этом случае новый подпуть неявно создается с начальной и текущей точкой, равной начальной точке предыдущего подпути.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Добавляет к пути эллипс, соответствующий в прямоугольнике.
Объявление
Swift
func CGPathAddEllipseInRect(_
path
: CGMutablePath!, _m
: UnsafePointer<CGAffineTransform>, _rect
: CGRect)Objective C
void CGPathAddEllipseInRect ( CGMutablePathRef path, const CGAffineTransform *m, CGRect rect );
Параметры
path
Путь для изменения.
m
Аффинное преобразование для применения к эллипсу, или
NULL
если Вы не хотите преобразовывать эллипс.rect
Прямоугольник для включения эллипса.
Обсуждение
Эллипс приближен последовательностью кривых Bézier. Его центр является средней точкой прямоугольника, определенного
rect
параметр. Если прямоугольник является квадратным, то эллипс является проспектом с радиусом, равным половине ширины (или высота) прямоугольника. Еслиrect
параметр указывает прямоугольную форму, тогда главные и незначительные оси эллипса определяются шириной и высотой прямоугольника.Эллипс формирует полный подпуть пути — т.е. получение эллипса запускается с перемещения - к работе и заканчивается работой подпути завершения всеми перемещениями, ориентированными в направлении по часовой стрелке. При предоставлении аффинного преобразования то созданные кривые Bézier, определяющие эллипс, преобразовываются, прежде чем они будут добавлены к пути.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.4 и позже.
-
Указывает, эквивалентны ли два графических контура.
Объявление
Swift
func CGPathEqualToPath(_
path1
: CGPath!, _path2
: CGPath!) -> BoolПараметры
path1
Первый сравниваемый путь.
path2
Второй сравниваемый путь.
Возвращаемое значение
Булево значение, указывающее, содержат ли два указанных пути ту же последовательность элементов пути. Если пути не являются тем же, возвратами
false
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает ограничительную рамку, содержащую все точки в графическом контуре.
Объявление
Swift
func CGPathGetBoundingBox(_
path
: CGPath!) -> CGRectПараметры
path
Графический контур для оценки.
Возвращаемое значение
Прямоугольник, представляющий ограничительную рамку указанного пути. Если путь пуст, эта функция возвраты
CGRectNull
.Обсуждение
Ограничительная рамка является наименьшим прямоугольником, полностью включающим все точки в путь, включая контрольные точки для Bézier и квадратичных кривых.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
См. также
-
Возвращает ограничительную рамку графического контура.
Объявление
Swift
func CGPathGetPathBoundingBox(_
path
: CGPath!) -> CGRectПараметры
path
Графический контур для оценки.
Возвращаемое значение
Прямоугольник, представляющий ограничительную рамку пути указанного пути. Если путь пуст, эта функция возвраты
CGRectNull
.Обсуждение
Ограничительная рамка пути является наименьшим прямоугольником, полностью включающим все точки в путь, но не включая контрольные точки для Bézier и квадратичных кривых.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Возвращает текущую точку в графическом контуре.
Объявление
Swift
func CGPathGetCurrentPoint(_
path
: CGPath!) -> CGPointПараметры
path
Путь для оценки.
Возвращаемое значение
Текущая точка по указанному пути.
Обсуждение
Если путь пуст — т.е. если он не имеет никаких элементов — эта функция возвраты
CGPointZero
(см. Ссылку CGGeometry). Чтобы определить, пуст ли путь, использоватьCGPathIsEmpty
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает Базовый идентификатор типа Основы для Кварцевых графических контуров.
Возвращаемое значение
Базовый идентификатор Основы для непрозрачного типа
CGPathRef
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Указывает, пуст ли графический контур.
Объявление
Swift
func CGPathIsEmpty(_
path
: CGPath!) -> BoolObjective C
bool CGPathIsEmpty ( CGPathRef path );
Параметры
path
Путь для оценки.
Возвращаемое значение
Булево значение, указывающее, пуст ли указанный путь.
Обсуждение
Пустой путь не содержит элементов.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Указывает, представляет ли графический контур прямоугольник.
Объявление
Swift
func CGPathIsRect(_
path
: CGPath!, _rect
: UnsafeMutablePointer<CGRect>) -> BoolПараметры
path
Путь для оценки.
rect
На вводе, указателе на неинициализированный прямоугольник. Если указанный путь представляет прямоугольник, по возврату содержит копию прямоугольника.
Возвращаемое значение
Булево значение, указывающее, представляет ли указанный путь прямоугольник. Если путь представляет прямоугольник, возвраты
true
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Проверки, содержится ли точка в графическом контуре.
Объявление
Swift
func CGPathContainsPoint(_
path
: CGPath!, _m
: UnsafePointer<CGAffineTransform>, _point
: CGPoint, _eoFill
: Bool) -> BoolObjective C
bool CGPathContainsPoint ( CGPathRef path, const CGAffineTransform *m, CGPoint point, bool eoFill );
Параметры
path
Путь для оценки точки против.
m
Аффинное преобразование. Если
m
неNULL
тогда точка преобразовывается этим аффинным преобразованием до определения, содержит ли путь точку.point
Точка для проверки.
eoFill
Булево значение это, если
true
, указывает для использования ровно-нечетного правила заливки оценить нарисованную область пути. Еслиfalse
, вьющееся правило заливки используется.Возвращаемое значение
Возвраты
true
если точка содержится в пути;false
иначе.Обсуждение
Точка содержится в пути, если это было бы в нарисованной области, когда путь заполнен.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.4 и позже.
-
Определяет функцию обратного вызова, которая может просмотреть элемент в графическом контуре.
Объявление
Swift
typealias CGPathApplierFunction = CFunctionPointer<((UnsafeMutablePointer<Void>, UnsafePointer<CGPathElement>) -> Void)>
Objective C
typedef void (*CGPathApplierFunction) ( void *info, const CGPathElement *element );
Обсуждение
См. также
CGPathApply
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Непрозрачный тип, представляющий неизменный графический контур.
Объявление
Swift
typealias CGPathRef = CGPath
Objective C
typedef const struct CGPath *CGPathRef;
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Непрозрачный тип, представляющий непостоянный графический контур.
Объявление
Swift
typealias CGMutablePathRef = CGMutablePath
Objective C
typedef struct CGPath *CGMutablePathRef;
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Структура данных, предоставляющая информацию об элементе пути.
Объявление
Swift
struct CGPathElement { var type: CGPathElementType var points: UnsafeMutablePointer<CGPoint> }
Objective C
struct CGPathElement { CGPathElementType type; CGPoint * points; }; typedef struct CGPathElement CGPathElement;
Поля
type
Тип элемента (или работа).
points
Массив одной или более точек, служащих параметрами.
Доступность
Доступный в OS X v10.2 и позже.
-
Опции для рендеринга пути.
Объявление
Swift
struct CGPathDrawingMode { init(_
value
: UInt32) var value: UInt32 }Objective C
enum CGPathDrawingMode { kCGPathFill, kCGPathEOFill, kCGPathStroke, kCGPathFillStroke, kCGPathEOFillStroke }; typedef enum CGPathDrawingMode CGPathDrawingMode;
Константы
-
kCGPathFill
kCGPathFill
Представьте область, содержавшую в пути с помощью ненулевого вьющегося правила числа.
Доступный в OS X v10.0 и позже.
-
kCGPathEOFill
kCGPathEOFill
Представьте область в пути с помощью ровно-нечетного правила.
Доступный в OS X v10.0 и позже.
-
kCGPathStroke
kCGPathStroke
Представьте строку вдоль пути.
Доступный в OS X v10.0 и позже.
-
kCGPathFillStroke
kCGPathFillStroke
Сначала заливка и затем перечеркивает путь, с помощью ненулевого вьющегося правила числа.
Доступный в OS X v10.0 и позже.
-
kCGPathEOFillStroke
kCGPathEOFillStroke
Сначала заливка и затем перечеркивает путь, с помощью ровно-нечетного правила.
Доступный в OS X v10.0 и позже.
Обсуждение
Можно передать режим рисования пути, постоянный функции
CGContextDrawPath
указать, как Кварц должен нарисовать текущий путь графического контекста.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.0 и позже.
-
-
Тип элемента найден по пути.
Объявление
Swift
struct CGPathElementType { init(_
value
: UInt32) var value: UInt32 }Objective C
enum CGPathElementType { kCGPathElementMoveToPoint, kCGPathElementAddLineToPoint, kCGPathElementAddQuadCurveToPoint, kCGPathElementAddCurveToPoint, kCGPathElementCloseSubpath }; typedef enum CGPathElementType CGPathElementType;
Константы
-
kCGPathElementMoveToPoint
kCGPathElementMoveToPoint
Элемент пути, запускающий новый подпуть. Элемент содержит единственную точку для места назначения. Посмотрите функцию
CGPathMoveToPoint
.Доступный в OS X v10.2 и позже.
-
kCGPathElementAddLineToPoint
kCGPathElementAddLineToPoint
Элемент пути, добавляющий строку от текущей точки до новой точки. Элемент содержит единственную точку для места назначения. Посмотрите функцию
CGPathAddLineToPoint
.Доступный в OS X v10.2 и позже.
-
kCGPathElementAddQuadCurveToPoint
kCGPathElementAddQuadCurveToPoint
Элемент пути, добавляющий квадратичную кривую от текущей точки до указанной точки. Элемент содержит контрольную точку и пункт назначения. Посмотрите функцию
CGPathAddQuadCurveToPoint
.Доступный в OS X v10.2 и позже.
-
kCGPathElementAddCurveToPoint
kCGPathElementAddCurveToPoint
Элемент пути, добавляющий кубическую кривую от текущей точки до указанной точки. Элемент содержит две контрольных точки и пункт назначения. Посмотрите функцию
CGPathAddCurveToPoint
.Доступный в OS X v10.2 и позже.
-
kCGPathElementCloseSubpath
kCGPathElementCloseSubpath
Элемент пути, закрывающий и завершающий подпуть. Элемент не содержит точек. Посмотрите функцию
CGPathCloseSubpath
.Доступный в OS X v10.2 и позже.
Обсуждение
Для получения дополнительной информации о путях, посмотрите
CGPathRef
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
-
Стили для рендеринга конечной точки перечеркиваемой строки.
Объявление
Swift
struct CGLineCap { init(_
value
: UInt32) var value: UInt32 }Objective C
enum CGLineCap { kCGLineCapButt, kCGLineCapRound, kCGLineCapSquare }; typedef enum CGLineCap CGLineCap;
Константы
-
kCGLineCapButt
kCGLineCapButt
Строка с в квадрате - от конца. Кварц разграничивает для расширения только на точную конечную точку пути. Это - значение по умолчанию.
Доступный в OS X v10.0 и позже.
-
kCGLineCapRound
kCGLineCapRound
Строка с округленным концом. Кварц разграничивает для расширения вне конечной точки пути. Концы строки с полукруглой дугой с радиусом 1/2 ширина строки, центрируемая на конечной точке.
Доступный в OS X v10.0 и позже.
-
kCGLineCapSquare
kCGLineCapSquare
Строка с в квадрате - от конца. Кварц расширяет строку вне конечной точки пути для расстояния, равного половине ширины строки.
Доступный в OS X v10.0 и позже.
Обсуждение
Окончание линии указывает метод, используемый
CGContextStrokePath
нарисовать конечную точку строки. Для изменения стиля окончания линии в графическом контексте Вы используете функциюCGContextSetLineCap
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.0 и позже.
-
-
Соединение вводит для перечеркиваемых строк.
Объявление
Swift
struct CGLineJoin { init(_
value
: UInt32) var value: UInt32 }Objective C
enum CGLineJoin { kCGLineJoinMiter, kCGLineJoinRound, kCGLineJoinBevel }; typedef enum CGLineJoin CGLineJoin;
Константы
-
kCGLineJoinMiter
kCGLineJoinMiter
Соединение с резким (угловым) углом. Кварц привлекает внешние стороны строк вне конечной точки пути, пока они не встречаются. Если длина среза, разделенного на ширину строки, больше, чем предельный угол стыка, косоугольное соединение используется вместо этого. Это - значение по умолчанию. Для установки предельного угла стыка посмотрите
CGContextSetMiterLimit
.Доступный в OS X v10.0 и позже.
-
kCGLineJoinRound
kCGLineJoinRound
Соединение с округленным концом. Кварц разграничивает для расширения вне конечной точки пути. Концы строки с полукруглой дугой с радиусом 1/2 ширина строки, центрируемая на конечной точке.
Доступный в OS X v10.0 и позже.
-
kCGLineJoinBevel
kCGLineJoinBevel
Соединение с в квадрате - от конца. Кварц разграничивает для расширения вне конечной точки пути для расстояния 1/2 ширина строки.
Доступный в OS X v10.0 и позже.
Обсуждение
Соединение строки указывает как
CGContextStrokePath
рисует соединение между связанными линейными сегментами. Для установки стиля соединения строки в графическом контексте Вы используете функциюCGContextSetLineJoin
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.0 и позже.
-