Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы ApplicationServices ссылка CGAffineTransform

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка CGAffineTransform

CGAffineTransform структура данных представляет матрицу, используемую для аффинных преобразований. Трансформация указывает, как точки в одной системе координат отображаются на точки в другой системе координат. Аффинное преобразование является специальным типом отображения, сохраняющего параллельные строки по пути, но не обязательно сохраняющего длины или углы. При масштабировании вращение и перевод являются обычно используемыми манипуляциями, поддерживаемыми аффинными преобразованиями, но скос также возможен.

Кварц обеспечивает функции, создающие, связывающие и применяющие аффинные преобразования с помощью CGAffineTransform структура данных. Для получения информации о том, как использовать функции аффинного преобразования, посмотрите Кварц 2D Руководство по программированию.

Вы обычно не должны создавать аффинное преобразование непосредственно — Ссылка CGContext описывает функции, изменяющие текущее аффинное преобразование. Если Вы не планируете снова использовать аффинное преобразование, можно хотеть использовать CGContextScaleCTM, CGContextRotateCTM, CGContextTranslateCTM, или CGContextConcatCTM.

Функции

  • Возвращает матрицу аффинного преобразования, созданную из значений, которые Вы обеспечиваете.

    Объявление

    Objective C

    CGAffineTransform CGAffineTransformMake ( CGFloat a, CGFloat b, CGFloat c, CGFloat d, CGFloat tx, CGFloat ty );

    Параметры

    a

    Значение в позиции [1,1] в матрице.

    b

    Значение в позиции [1,2] в матрице.

    c

    Значение в позиции [2,1] в матрице.

    d

    Значение в позиции [2,2] в матрице.

    tx

    Значение в позиции [3,1] в матрице.

    ty

    Значение в позиции [3,2] в матрице.

    Возвращаемое значение

    Новая матрица аффинного преобразования создала из значений, которые Вы указываете.

    Обсуждение

    Эта функция создает a CGAffineTransform структура, представляющая новую матрицу аффинного преобразования, которую можно использовать (и повторное использование, если Вы хотите) преобразовать систему координат. Матрица принимает следующую форму:

    image: ../Art/equation01.pict

    Поскольку третий столбец всегда (0,0,1), CGAffineTransform структура данных, возвращенная этой функцией, содержит значения для только первых двух столбцов.

    Если Вы хотите только преобразовать объект, который будет нарисован, не необходимо создать аффинное преобразование, чтобы сделать так. Самый прямой способ преобразовать Ваше получение путем вызова надлежащего CGContext функция для корректировки текущей матрицы преобразования. Для списка функций см. Ссылку CGContext.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает матрицу аффинного преобразования, созданную из значения вращения, которое Вы обеспечиваете.

    Объявление

    Swift

    func CGAffineTransformMakeRotation(_ angle: CGFloat) -> CGAffineTransform

    Objective C

    CGAffineTransform CGAffineTransformMakeRotation ( CGFloat angle );

    Параметры

    angle

    Угол, в радианах, на которые эта матрица поворачивает оси системы координат. В iOS положительное значение указывает против часовой стрелки вращение, и отрицательная величина указывает по часовой стрелке вращение. В OS X положительное значение указывает по часовой стрелке вращение, и отрицательная величина указывает против часовой стрелки вращение.

    Возвращаемое значение

    Новая матрица аффинного преобразования.

    Обсуждение

    Эта функция создает a CGAffineTransform структура, которую можно использовать (и повторное использование, если Вы хотите) поворачивать систему координат. Матрица принимает следующую форму:

    image: ../Art/equation10.pict

    Фактическое направление вращения зависит от ориентации системы координат целевой платформы, отличающейся в iOS и OS X. Поскольку третий столбец всегда (0,0,1), CGAffineTransform структура данных, возвращенная этой функцией, содержит значения для только первых двух столбцов.

    Это получающиеся уравнения что Кварцевое использование для применения вращения к точке (x, y):

    image: ../Art/equation11.pict

    Если Вы хотите только повернуть объект, который будет нарисован, не необходимо создать аффинное преобразование, чтобы сделать так. Самый прямой способ повернуть Ваше получение путем вызывания функции CGContextRotateCTM.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает матрицу аффинного преобразования, созданную из масштабирования значений, которые Вы обеспечиваете.

    Объявление

    Swift

    func CGAffineTransformMakeScale(_ sx: CGFloat, _ sy: CGFloat) -> CGAffineTransform

    Objective C

    CGAffineTransform CGAffineTransformMakeScale ( CGFloat sx, CGFloat sy );

    Параметры

    sx

    Фактор, которым можно масштабировать ось X системы координат.

    sy

    Фактор, которым можно масштабировать ось y системы координат.

    Возвращаемое значение

    Новая матрица аффинного преобразования.

    Обсуждение

    Эта функция создает a CGAffineTransform структура, которую можно использовать (и повторное использование, если Вы хотите) масштабировать систему координат. Матрица принимает следующую форму:

    image: ../Art/equation08.pict

    Поскольку третий столбец всегда (0,0,1), CGAffineTransform структура данных, возвращенная этой функцией, содержит значения для только первых двух столбцов.

    Это получающиеся уравнения что Кварцевое использование для масштабирования координат точки (x, y):

    image: ../Art/equation09.pict

    Если Вы хотите только масштабировать объект, который будет нарисован, не необходимо создать аффинное преобразование, чтобы сделать так. Самый прямой способ масштабировать Ваше получение путем вызывания функции CGContextScaleCTM.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает матрицу аффинного преобразования, созданную из значений перевода, которые Вы обеспечиваете.

    Объявление

    Swift

    func CGAffineTransformMakeTranslation(_ tx: CGFloat, _ ty: CGFloat) -> CGAffineTransform

    Objective C

    CGAffineTransform CGAffineTransformMakeTranslation ( CGFloat tx, CGFloat ty );

    Параметры

    tx

    Значение, которым можно переместить ось X системы координат.

    ty

    Значение, которым можно переместить ось y системы координат.

    Возвращаемое значение

    Новая матрица аффинного преобразования.

    Обсуждение

    Эта функция создает a CGAffineTransform структура. который можно использовать (и повторное использование, если Вы хотите) перемещать систему координат. Матрица принимает следующую форму:

    image: ../Art/equation06.pict

    Поскольку третий столбец всегда (0,0,1), CGAffineTransform структура данных, возвращенная этой функцией, содержит значения для только первых двух столбцов.

    Это получающееся Кварцевое использование уравнений для применения перевода в точку (x, y):

    image: ../Art/equation07.pict

    Если Вы хотите только переместить расположение, где объект нарисован, не необходимо создать аффинное преобразование, чтобы сделать так. Самый прямой способ переместить Ваше получение путем вызывания функции CGContextTranslateCTM.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает матрицу аффинного преобразования, созданную путем перевода существующего аффинного преобразования.

    Объявление

    Swift

    func CGAffineTransformTranslate(_ t: CGAffineTransform, _ tx: CGFloat, _ ty: CGFloat) -> CGAffineTransform

    Objective C

    CGAffineTransform CGAffineTransformTranslate ( CGAffineTransform t, CGFloat tx, CGFloat ty );

    Параметры

    t

    Существующее аффинное преобразование.

    tx

    Значение, которым можно переместить значения x с аффинным преобразованием.

    ty

    Значение, которым можно переместить значения y с аффинным преобразованием.

    Возвращаемое значение

    Новая матрица аффинного преобразования.

    Обсуждение

    Вы используете эту функцию для создания нового аффинного преобразования путем добавления, что перевод оценивает существующему аффинному преобразованию. Получающаяся структура представляет новое аффинное преобразование, которое можно использовать (и повторное использование, если Вы хотите) перемещать систему координат.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает матрицу аффинного преобразования, созданную путем масштабирования существующего аффинного преобразования.

    Объявление

    Swift

    func CGAffineTransformScale(_ t: CGAffineTransform, _ sx: CGFloat, _ sy: CGFloat) -> CGAffineTransform

    Objective C

    CGAffineTransform CGAffineTransformScale ( CGAffineTransform t, CGFloat sx, CGFloat sy );

    Параметры

    t

    Существующее аффинное преобразование.

    sx

    Значение, которым можно масштабировать x значения аффинного преобразования.

    sy

    Значение, которым можно масштабировать y значения аффинного преобразования.

    Возвращаемое значение

    Новая матрица аффинного преобразования.

    Обсуждение

    Вы используете эту функцию для создания новой матрицы аффинного преобразования путем добавления масштабирующихся значений к существующему аффинному преобразованию. Получающаяся структура представляет новое аффинное преобразование, которое можно использовать (и повторное использование, если Вы хотите) масштабировать систему координат.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает матрицу аффинного преобразования, созданную путем вращения существующего аффинного преобразования.

    Объявление

    Swift

    func CGAffineTransformRotate(_ t: CGAffineTransform, _ angle: CGFloat) -> CGAffineTransform

    Objective C

    CGAffineTransform CGAffineTransformRotate ( CGAffineTransform t, CGFloat angle );

    Параметры

    t

    Существующее аффинное преобразование.

    angle

    Угол, в радианах, на которые можно повернуть аффинное преобразование. В iOS положительное значение указывает против часовой стрелки вращение, и отрицательная величина указывает по часовой стрелке вращение. В OS X положительное значение указывает по часовой стрелке вращение, и отрицательная величина указывает против часовой стрелки вращение.

    Возвращаемое значение

    Новая матрица аффинного преобразования.

    Обсуждение

    Вы используете эту функцию для создания новой матрицы аффинного преобразования путем добавления, что вращение оценивает существующему аффинному преобразованию. Получающаяся структура представляет новое аффинное преобразование, которое можно использовать (и повторное использование, если Вы хотите) поворачивать систему координат.

    Фактическое направление вращения зависит от ориентации системы координат целевой платформы, отличающейся в iOS и OS X.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает матрицу аффинного преобразования, созданную путем инвертирования существующего аффинного преобразования.

    Объявление

    Swift

    func CGAffineTransformInvert(_ t: CGAffineTransform) -> CGAffineTransform

    Objective C

    CGAffineTransform CGAffineTransformInvert ( CGAffineTransform t );

    Параметры

    t

    Существующее аффинное преобразование.

    Возвращаемое значение

    Новая матрица аффинного преобразования. Если аффинное преобразование передается в параметре t не может быть инвертирован, Кварц возвращает неизменное аффинное преобразование.

    Обсуждение

    Инверсия обычно используется для обеспечения обратной трансформации точек в преобразованных объектах. Учитывая координаты (x, y), которые были преобразованы данной матрицей к новым координатам (x’, y’), преобразовав координаты (x’, y’) обратной матрицей производит исходные координаты (x, y).

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает матрицу аффинного преобразования, созданную путем объединения двух существующих аффинных преобразований.

    Объявление

    Swift

    func CGAffineTransformConcat(_ t1: CGAffineTransform, _ t2: CGAffineTransform) -> CGAffineTransform

    Objective C

    CGAffineTransform CGAffineTransformConcat ( CGAffineTransform t1, CGAffineTransform t2 );

    Параметры

    t1

    Первое аффинное преобразование.

    t2

    Второе аффинное преобразование. Это аффинное преобразование связывается к первому аффинному преобразованию.

    Возвращаемое значение

    Новая матрица аффинного преобразования. Т.е. t’ = t1*t2.

    Обсуждение

    Связь комбинирует две матрицы аффинного преобразования путем умножения их вместе. Вы могли бы выполнить несколько связей для создания единственного аффинного преобразования, содержащего кумулятивные эффекты нескольких трансформаций.

    Обратите внимание на то, что операции над матрицей не являются коммутативными — порядок, в котором Вы конкатенируете, матрицы важно. Т.е. результат умножения матрицы t1 матрицей t2 не обязательно равняется результату умножения матрицы t2 матрицей t1.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает точку, следующую из аффинного преобразования существующей точки.

    Объявление

    Objective C

    CGPoint CGPointApplyAffineTransform ( CGPoint point, CGAffineTransform t );

    Параметры

    point

    Точка, указывающая x-и y-координаты для преобразования.

    t

    Аффинное преобразование для применения.

    Возвращаемое значение

    Новая точка, следующая из применения указанного аффинного преобразования к существующей точке.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает высоту и ширину, следующую из трансформации существующей высоты и ширины.

    Объявление

    Objective C

    CGSize CGSizeApplyAffineTransform ( CGSize size, CGAffineTransform t );

    Параметры

    size

    Размер, указывающий высоту и ширину для преобразования.

    t

    Аффинное преобразование для применения.

    Возвращаемое значение

    Новый размер, следующий из применения указанного аффинного преобразования к существующему размеру.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Доступность

    Доступный в OS X v10.0 и позже.

  • Применяет аффинное преобразование к прямоугольнику.

    Объявление

    Swift

    func CGRectApplyAffineTransform(_ rect: CGRect, _ t: CGAffineTransform) -> CGRect

    Objective C

    CGRect CGRectApplyAffineTransform ( CGRect rect, CGAffineTransform t );

    Параметры

    rect

    Прямоугольник, угловые точки которого Вы хотите преобразовать.

    t

    Аффинное преобразование для применения к rect параметр.

    Возвращаемое значение

    Преобразованный прямоугольник.

    Обсуждение

    Поскольку аффинные преобразования не сохраняют прямоугольники в целом, функцию CGRectApplyAffineTransform возвращает наименьший прямоугольник, содержащий преобразованные угловые точки rect параметр. Если аффинное преобразование t состоит исключительно из масштабирования и операций перевода, тогда возвращенный прямоугольник совпадает с прямоугольником, созданным из четырех преобразованных углов.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.4 и позже.

  • Проверки, является ли аффинное преобразование идентификационными данными, преобразовывают.

    Объявление

    Swift

    func CGAffineTransformIsIdentity(_ t: CGAffineTransform) -> Bool

    Objective C

    bool CGAffineTransformIsIdentity ( CGAffineTransform t );

    Параметры

    t

    Аффинное преобразование для проверки.

    Возвращаемое значение

    Возвраты true если t идентификационные данные, преобразовывают, false иначе.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.4 и позже.

  • Проверки, равны ли два аффинных преобразования.

    Объявление

    Swift

    func CGAffineTransformEqualToTransform(_ t1: CGAffineTransform, _ t2: CGAffineTransform) -> Bool

    Objective C

    bool CGAffineTransformEqualToTransform ( CGAffineTransform t1, CGAffineTransform t2 );

    Параметры

    t1

    Аффинное преобразование.

    t2

    Аффинное преобразование.

    Возвращаемое значение

    Возвраты true если t1 и t2 равны, false иначе.

    Оператор импорта

    Objective C

    @import CoreGraphics;

    Swift

    import CoreGraphics

    Доступность

    Доступный в OS X v10.4 и позже.

Типы данных

  • Структура для содержания матрицы аффинного преобразования.

    Объявление

    Swift

    struct CGAffineTransform { var a: CGFloat var b: CGFloat var c: CGFloat var d: CGFloat var tx: CGFloat var ty: CGFloat }

    Objective C

    struct CGAffineTransform { CGFloat a; CGFloat b; CGFloat c; CGFloat d; CGFloat tx; CGFloat ty; }; typedef struct CGAffineTransform CGAffineTransform;

    Поля

    a

    Запись в позиции [1,1] в матрице.

    b

    Запись в позиции [1,2] в матрице.

    c

    Запись в позиции [2,1] в матрице.

    d

    Запись в позиции [2,2] в матрице.

    tx

    Запись в позиции [3,1] в матрице.

    ty

    Запись в позиции [3,2] в матрице.

    Обсуждение

    В 2D Кварце матрица аффинного преобразования используется, чтобы повернуть, масштабировать, перевести, или скосить объекты, которые Вы рисуете в графическом контексте. CGAffineTransform тип обеспечивает функции для создания, конкатенации и применения аффинных преобразований.

    В Кварце аффинные преобразования представлены 3 3 матрицами:

    image: ../Art/equation01.pict

    Поскольку третий столбец всегда (0,0,1), CGAffineTransform структура данных содержит значения для только первых двух столбцов.

    Концептуально, Кварцевое аффинное преобразование умножает строковый вектор, представляющий каждую точку (x, y) в Вашем получении этой матрицей, производя вектор, представляющий соответствующую точку (x’, y’):

    image: ../Art/equation02.pict

    Учитывая 3 3 матрицами, Кварц использует следующие уравнения для преобразования точки (x, y) в одной системе координат в результирующую точку (x’, y’) в другой системе координат.

    image: ../Art/equation03.pict

    Матрица, таким образом, «соединяет» две системы координат — она указывает, как точки в одной системе координат отображаются на точки в другом.

    Обратите внимание на то, что Вы не должны обычно создавать аффинные преобразования непосредственно. Если Вы хотите только нарисовать объект, масштабирующийся или поворачивающийся, например, не необходимо создать аффинное преобразование, чтобы сделать так. Самый прямой способ управлять Вашим получением — должен ли перемещением, масштабированием или вращением — вызвать функции CGContextTranslateCTM, CGContextScaleCTM, или CGContextRotateCTM, соответственно. Необходимо обычно только создать аффинное преобразование, если Вы хотите снова использовать его позже.

    Доступность

    Доступный в OS X v10.0 и позже.

Константы

  • Идентификационные данные преобразовывают.

    Объявление

    Swift

    let CGAffineTransformIdentity: CGAffineTransform

    Objective C

    const CGAffineTransform CGAffineTransformIdentity;

    Константы

    • CGAffineTransformIdentity

      CGAffineTransformIdentity

      Идентификационные данные преобразовывают:image: ../Art/equation04.gif

      Доступный в OS X v10.0 и позже.