Matrix

Matrix class

Заменяет GDI+Matrix.

public class Matrix

Конструкторы

ИмяОписание
Matrix()Инициализирует новый экземпляр класса Matrix как единичную матрицу.
Matrix(Rectangle, Point[])Инициализирует новый экземпляр классаMatrixдля геометрического преобразования, определяемого указанным прямоугольником и массивом точек .
Matrix(RectangleF, PointF[])Инициализирует новый экземпляр классаMatrixдля геометрического преобразования, определяемого указанным прямоугольником и массивом точек .
Matrix(float, float, float, float, float, float)Инициализирует новый экземпляр классаMatrix.

Характеристики

ИмяОписание
Elements { get; }Получает массив значений с плавающей запятой, который представляет элементы этогоMatrix.
M11 { get; }Получает элемент матрицы в первой строке первого столбца. Представляет масштаб по оси X.
M12 { get; }Получает элемент матрицы в первой строке второго столбца. Представляет сдвиг по оси Y.
M21 { get; }Получает элемент матрицы во второй строке первого столбца. Представляет сдвиг по оси X.
M22 { get; }Получает элемент матрицы во второй строке второго столбца. Представляет масштаб по оси Y.
M31 { get; }Получает элемент матрицы в третьей строке первого столбца. Представляет перемещение по оси X.
M32 { get; }Получает элемент матрицы в третьей строке первого столбца. Представляет перемещение по оси Y.

Методы

ИмяОписание
override Equals(object)Определяет, равен ли указанныйObjectэтому экземпляру.
GetElements()Получает копию элементов матрицы.
override GetHashCode()Возвращает хэш-код для данного экземпляра.
Multiply(Matrix)Умножает эту матрицу на матрицу, указанную в параметре матрицы, используя (по умолчанию) порядок добавления.
Multiply(Matrix, MatrixOrder)Умножает эту матрицу на матрицу, указанную в параметре matrix, и в порядке, указанном в параметре order.
Reset()Сбрасывает эту матрицу, чтобы она имела элементы единичной матрицы.
Rotate(float)Применяет поворот по часовой стрелке на величину, указанную в параметре угла, вокруг начала координат (нулевые координаты x и y) для этой матрицы в порядке по умолчанию (Prepend).
Rotate(float, MatrixOrder)Применяет поворот по часовой стрелке на величину, указанную в параметре угла, вокруг начала координат (нулевые координаты x и y) для этой матрицы в указанном порядке.
RotateAt(float, PointF)Применяет вращение по часовой стрелке вокруг указанной точки к этой матрице в порядке по умолчанию (Prepend).
RotateAt(float, PointF, MatrixOrder)Применяет вращение по часовой стрелке вокруг указанной точки к этой матрице в указанном порядке.
Scale(float, float)Применяет указанный вектор масштаба (масштаб X и масштаб Y) к этой матрице с использованием (по умолчанию) порядка добавления.
Scale(float, float, MatrixOrder)Применяет указанный вектор масштаба (scaleX и scaleY) к этомуMatrixв указанном порядке.
override ToString()ВозвращаетString, который представляет этот экземпляр.
TransformPoints(PointF[])Применяет геометрическое преобразование, представленное этимMatrixк указанному массиву точек.
Translate(float, float)Применяет указанный вектор смещения к этомуMatrixс использованием (по умолчанию) порядка добавления.
Translate(float, float, MatrixOrder)Применяет указанный вектор смещения к этой матрице в указанном порядке.
static Equals(Matrix, Matrix)Определяет, равны ли две матрицы.
operator ==Реализует оператор ==.
operator !=Реализует оператор !=.

Поля

ИмяОписание
const TypeFlipЭтот бит флага указывает, что преобразование, определенное этим объектом выполняет зеркальное отражение относительно некоторой оси, которая изменяет обычно правосторонняя система координат в левостороннюю система в дополнение к преобразованиям, указанным другими битами флага. Правосторонняя система координат - это та, в которой положительная ось X вращается против часовой стрелки, чтобы наложиться на положительную ось Y аналогично направлению, в котором пальцы на вашем правая рука скручивание, когда вы смотрите концом на большой палец. Левосторонняя система координат — это система, в которой положительная ось X вращается по часовой стрелке, чтобы наложиться на положительную ось Y, аналогично направлению, в котором пальцы на скручивание левой руки. Не существует математического способа определить угол исходного переворота или зеркального отображения, поскольку все углы переворота идентичны при соответствующем корректирующем повороте. ПРИМЕЧАНИЕ:TypeFlip был добавлен после того, как GENERAL_TRANSFORM был в открытом доступе обращение и флаговые биты больше не могли быть удобными перенумерованы без введения бинарной несовместимости снаружи код.
const TypeGeneralRotationЭтот бит флага указывает, что преобразование, определенное этим объектом выполняет поворот на произвольный угол в дополнение к преобразования, указанные другими битами флага. Вращение изменяет углы векторов на одинаковую величину независимо от исходного направления вектора и без изменения длины вектора. Этот бит флага является взаимоисключающим с
const TypeGeneralScaleОбщая шкала умножает длину векторов на разные величины в направлениях x и y без изменения угла между перпендикулярными векторами. Этот бит флага является взаимоисключающим с флагом TypeUniformScale.
const TypeGeneralTransformЭта константа указывает, что преобразование, определенное этим объектом выполняет произвольное преобразование входных координат. Если это преобразование может быть классифицировано любой из вышеуказанных констант, тип будет либо константой TypeIdentity, либо комбинацией соответствующих битов флага для различных координатных преобразований, которые выполняет это преобразование.
const TypeIdentityТождественное преобразование — это преобразование, в котором выходные координаты всегда совпадают с входными координатами. Если это преобразование отличается от тождественного преобразования, тип будет либо константой GENERAL_TRANSFORM, либо комбинацией соответствующих битов флага для различные координаты преобразования, которые выполняет это преобразование.
const TypeMaskRotationЭта константа является битовой маской для любого из битов флага ротации.
const TypeMaskScaleЭта константа является битовой маской для любого из битов флага масштаба.
const TypeQuadrantRotationЭтот бит флага указывает, что преобразование, определенное этим объектом выполняет поворот квадранта на некоторое число, кратное 90 градусам в дополнение к преобразованиям, указанным другими битами флага. Вращение изменяет углы векторов на одинаковую величину независимо от исходного направления вектора и без изменения длины вектора. Этот бит флага является взаимоисключающим с флагом TypeGeneralRotation.
const TypeTranslationТрансляция перемещает координаты на постоянную величину по x и y без изменения длины или угла векторов.
const TypeUniformScaleРавномерная шкала умножает длину векторов на одинаковую величину в обоих направлениях x и y без изменения угла между векторы. Этот бит флага является взаимоисключающим с флагом TypeGeneralScale.

Примечания

Большинство алгоритмов взяты из Sun’s AffineTransform.java. Имена Java для матричных элементов, используемых внутри. Сопоставление имен java с именами .net с описанием: m00 M11 Scale X m10 M12 Shear Y m01 M21 Shear X m11 M22 Scale Y m02 M31 Translate X m12 M32 Translate Y

Смотрите также