Matrix

Matrix class

Заменяет матрицу GDI+.

public class Matrix

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

ИмяОписание
Matrix()Инициализирует новый экземпляр класса Matrix как единичную матрицу.
Matrix(Matrix)Делает копиюMatrix класс.
Matrix(Rectangle, Point[])Инициализирует новый экземплярMatrix class к геометрическому преобразованию, определенному указанным прямоугольником и массивом точек.
Matrix(RectangleF, PointF[])Инициализирует новый экземплярMatrix class к геометрическому преобразованию, определенному указанным прямоугольником и массивом точек.
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)Умножает эту матрицу на матрицу, указанную в параметре matrix, используя (по умолчанию) Prepend order.
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)Применяет указанный вектор масштабирования (scaleX и scaleY) к этой матрице, используя (по умолчанию) Prepend order.
Scale(float, float, MatrixOrder)Применяет указанный вектор масштаба (scaleX и scaleY) к этомуMatrix используя указанный порядок.
override ToString()ВозвращаетString который представляет этот экземпляр.
TransformPoints(PointF[])Применяет геометрическое преобразование, представленное этимMatrixв указанный массив точек.
Translate(float, float)Применяет указанный вектор смещения к этомуMatrix используя (по умолчанию) Prepend order.
Translate(float, float, MatrixOrder)Применяет указанный вектор смещения к этой матрице в указанном порядке.
static Equals(Matrix, Matrix)Определяет, равны ли две матрицы.

Поля

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

Примечания

Большинство алгоритмов взяты из Sun AffineTransform.java. Имена Java для матричных элементов, используемых внутри. Сопоставление имен java с именами .net и описанием: m00 Масштаб M11 X m10 M12 Сдвиг Y m01 M21 Сдвиг X m11 M103 m10d Масштаб Y_x00 Перевести X m12 M32 Перевести Y

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