Описание
Класс Matrix представляет матрицу преобразования, определяющую способ сопоставления точек из одного пространства координат с точками в другом пространстве координат.
Различные преобразования графики экранного объекта выполняются следующим образом:
- Задайте свойства объекта Matrix
- Примените объект Matrix к свойству матрицы объекта Transform
- Примените объект Transform в качестве свойства преобразования экранного объекта.
Эти функции преобразования включают перемещение (изменение положения осей x и y), поворот и масштабирование.
Матрицы преобразования
Вместе эти типы преобразования называются аффинными преобразованиями. Аффинные преобразования сохраняют линии прямыми, благодаря чему параллельные линии остаются параллельными.
Объект матрицы преобразования представляет собой матрицу 3 x 3, имеющую следующее содержимое:
| a c tx | | b d ty | | u v w |
В традиционных матрицах преобразования свойств u, v и w предоставляют дополнительные возможности. Класс Matrix применяется только в двумерном пространстве. Поэтому всегда считается, что значений свойств u и v равны 0.0, а значение свойства w равно 1.0. Эффективные значения матрицы следующие:
| a c tx | | b d ty | | 0 0 1 |
Синтаксис
new flwebgl.geom.Matrix(values)
Параметры
Имя | Тип | Описание |
---|---|---|
значения | Число[] | (дополнительно) массив, задающий значения матрицы в формате [a b c d tx ty]. Если значения не указаны, матрица становится единичной. |
Методы
clone()
Описание
Этот метод возвращает клон экземпляра Matrix.
Возвращает
- Клон экземпляра Matrix.
- Тип — матрица
concat(matrix)
Описание
Этот метод сцепляет матрицу с текущей матрицей, фактически объединяя геометрические искажения двух матриц.
Параметры
Возвращает
- Эта матрица. Полезно для связывания вызовов метода.
- Тип — матрица
Пример
Этот пример объединяет вращаемую матрицу и масштабируемую матрицу.
Имя | Тип | Описание |
---|---|---|
матрица | Matrix | Матрица, которую требуется умножить |
var m1 = new flwebgl.geom.Matrix(); m1.rotate(45 * Math.PI / 180); var m2 = new flwebgl.geom.Matrix(); m2.scale(2, 2); m1.concat(m2);
copy(матрица)
Описание
Этот метод копирует указанную матрицу в данную матрицу.
Параметры
Возвращает
- Эта матрица. Полезно для связывания вызовов метода.
- Тип — матрица
Имя | Тип | Описание |
---|---|---|
матрица | Matrix | Матрица, свойства которой требуется скопировать |
equals(mat)
Описание
Этот метод проверяет совпадение значений матрицы с этим экземпляром.
Параметры
Возвращает
- Тип — логическое значение
Имя | Тип | Описание |
---|---|---|
коврик | Matrix | Матрица, которую требуется сравнить |
getValues()
Описание
Этот метод возвращает значения элементов матрицы.
Возвращает
- Массив, задающий значения матрицы в формате [a b c d tx ty]
- Тип — число[]
Пример
В этом примере значения матрицы получены и изменены для ее наклона с множителем 0,5.
var m = new flwebgl.geom.Matrix(); var arr = m.getValues(); arr[1] = 0.5; m.setValues(arr);
identity()
Описание
Этот метод преобразует матрицу в единичную матрицу.
Возвращает
- Эта матрица. Полезно для связывания вызовов метода.
- Тип — матрица
invert()
Описание
Этот метод инвертирует матрицу. К инвертированной матрице применяется противоположное преобразование.
Возвращает
- Эта матрица. Полезно для связывания вызовов метода.
- Тип — матрица
isIdentity()
Описание
Этот метод возвращает значение true если матрица является единичной.
Возвращает
- Тип — логическое значение
rotate(angle)
Описание
Этот метод преобразует матрицу, поворачивая ее.
Параметры
Возвращает
- Эта матрица. Полезно для связывания вызовов метода.
- Тип — матрица
Пример
В этом примере создается новый экземпляр матрицы, инициализированный для единичной матрицы, и поворачивается на 45 градусов.
Имя | Тип | Описание |
---|---|---|
угол | number | Угол в радианах. Для использования градусов следует умножить на Math.PI/180. |
var m = new flwebgl.geom.Matrix(); m.rotate(45 * Math.PI / 180);
scale(x, y)
Описание
Этот метод преобразует матрицу, масштабируя ее.
Параметры
Возвращает
- Эта матрица. Полезно для связывания вызовов метода.
- Тип — матрица
Пример
В этом примере создается новый экземпляр матрицы, инициализированный для единичной матрицы, и увеличивается с коэффициентом 2 по горизонтали и вертикали.
Имя | Тип | Описание |
---|---|---|
x | number | Коэффициент масштабирования по горизонтали |
y | number | Коэффициент масштабирования по вертикали |
var m = new flwebgl.geom.Matrix(); m.scale(2, 2);
setValues(values)
Описание
Этот метод задает значения элементов матрицы.
Параметры
Пример
См. пример для функции getValues().
Имя | Тип | Описание |
---|---|---|
значения | Число[] | Массив, задающий значения матрицы в формате [a b c d tx ty]. |
transformPoint(point)
Описание
Этот метод преобразует точку в соответствии с матрицей.
Параметры
Возвращает
- Преобразованная точка.
- Тип — точка
Имя | Тип | Описание |
---|---|---|
пункт | Point | Точка, которую требуется преобразовать. |
transformRect(rect)
Описание
Этот метод преобразует все четыре точки прямоугольника в соответствии с матрицей.
Параметры
Возвращает
- Преобразованный прямоугольник.
- Тип — прямоугольник
Имя | Тип | Описание |
---|---|---|
прямоугольник | Rect | Прямоугольник, который требуется преобразовать. |
translate(dx, dy)
Описание
Этот метод перемещает матрицу по осям x и y.
Параметры
Возвращает
- Эта матрица. Полезно для связывания вызовов метода.
- Тип — матрица
Имя | Тип | Описание |
---|---|---|
dx | number | Величина перемещения по оси X вправо. |
dy | number | Величина перемещения по оси Y вниз. |
Вход в учетную запись