Описание

Класс 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 по горизонтали и вертикали.

ИмяТипОписание
xnumberКоэффициент масштабирования по горизонтали
ynumberКоэффициент масштабирования по вертикали
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.

Параметры

Возвращает

  • Эта матрица. Полезно для связывания вызовов метода.
  • Тип — матрица
ИмяТипОписание
dxnumberВеличина перемещения по оси X вправо.
dynumberВеличина перемещения по оси Y вниз.

Эта работа лицензируется в соответствии с лицензией Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported  На посты, размещаемые в Twitter™ и Facebook, условия Creative Commons не распространяются.

Правовые уведомления   |   Политика конфиденциальности в сети Интернет