Пакет | flash.geom |
Класс | public class Matrix |
Наследование | Matrix Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
matrix
объекта Transform и последующего применения объекта Transform в качестве свойства transform
к экранному объекту. Эти функции преобразования включают перемещение (изменение положения осей x и y), поворот, масштабирование и наклон.
Все эти преобразования называются аффинные преобразования. При аффинных преобразованиях сохраняется прямолинейность линий, поэтому параллельные линии остаются параллельными.
Чтобы применить матрицу преобразования к экранному объекту, необходимо создать объект Transform, настроить его свойство matrix
для матрицы преобразования, а затем настроить свойство transform
экранного объекта для объекта Transform. Объекты матрицы также используются как параметры в некоторых методах, например:
- метод
draw()
объекта BitmapData; - метод
beginBitmapFill()
,beginGradientFill()
илиlineGradientStyle()
объекта Graphics.
Объект матрицы преобразования является матрицей размерностью 3x3 со следующим содержимым:
В традиционных матрицах преобразования свойства u
, v
и w
предоставляют дополнительные возможности. Класс Matrix можно использовать только в двухмерном пространстве, поэтому при его использовании всегда подразумевается, что значения свойств u
и v
равны 0,0; значение свойства w
равно 1,0. Эффективными значениями матрицы являются:
Можно получить и настроить значения остальных шести свойств объекта Matrix: a
, b
, c
, d
, tx
и ty
.
Класс Matrix поддерживает четыре основных типа преобразований: перемещение, масштабирование, поворот и наклон. С помощью специальных методов можно настроить три из перечисленных преобразования, как описано в следующей таблице:
Преобразование | Метод | Значения матрицы | Отображаемый результат | Описание |
---|---|---|---|---|
Перемещение (перестановка) |
translate(tx, ty)
| Перемещение пикселей tx изображения вправо, а пикселей ty вниз. | ||
Масштабирование |
scale(sx, sy)
| Изменение размера изображения, умножение расположения каждого пикселя на величину sx по оси x и sy по оси y. | ||
Поворот |
rotate(q)
| Поворот изображения на угол q , который измеряется в радианах. | ||
Наклон или сдвиг | Нет; необходимо настроить свойства b и c
| Постепенный сдвиг изображения параллельно оси x или y. Свойство b объекта Matrix представляет тангенс угла наклона по оси y; свойство c объекта Matrix представляет тангенс угла наклона по оси x. |
Каждая функция преобразования изменяет текущие свойства матрицы, поэтому можно эффективно комбинировать несколько преобразований. Для этого необходимо вызвать несколько функций преобразования перед применением матрицы к целевому экранному объекту (при использовании свойства transform
этого экранного объекта).
Используйте конструктор new Matrix()
для создания объекта Matrix перед вызовом методов объекта Matrix.
Связанные элементы API
flash.geom.Transform
flash.display.BitmapData.draw()
flash.display.Graphics.beginBitmapFill()
flash.display.Graphics.beginGradientFill()
flash.display.Graphics.lineGradientStyle()
Свойство | Определено | ||
---|---|---|---|
a : Number
Значение, от которого зависит размещение пикселей вдоль оси x при масштабировании или повороте изображения. | Matrix | ||
b : Number
Значение, от которого зависит размещение пикселей вдоль оси y при повороте или наклоне изображения. | Matrix | ||
c : Number
Значение, от которого зависит размещение пикселей вдоль оси x при повороте или наклоне изображения. | Matrix | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
d : Number
Значение, от которого зависит размещение пикселей вдоль оси y при масштабировании или повороте изображения. | Matrix | ||
tx : Number
Расстояние, на которое перемещается каждая точка вдоль оси x. | Matrix | ||
ty : Number
Расстояние, на которое перемещается каждая точка вдоль оси y. | Matrix |
Метод | Определено | ||
---|---|---|---|
Создает новый объект Matrix с заданными параметрами. | Matrix | ||
Возвращает новый объект Matrix, который является клоном данной матрицы с точной копией содержащегося в ней объекта. | Matrix | ||
Сцепляет матрицу с текущей матрицей, фактически объединяя геометрические искажения двух матриц. | Matrix | ||
Копирует объект Vector3D в определенный столбец вызывающего объекта Matrix3D. | Matrix | ||
Копирует определенный столбец вызывающего объекта Matrix в объект Vector3D. | Matrix | ||
Копирует все данные матрицы из исходного объекта Point в вызывающий объект Matrix. | Matrix | ||
Копирует объект Vector3D в определенную строку вызывающего объекта Matrix. | Matrix | ||
Копирует определенную строку вызывающего объекта Matrix в объект Vector3D. | Matrix | ||
Включает параметры для масштабирования, поворота и перемещения. | Matrix | ||
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Создает особый стиль матрицы, ожидаемый методом beginGradientFill() и lineGradientStyle класса Graphics. | Matrix | ||
Для точки в пространстве координат до преобразования возвращает ее координаты после преобразования. | Matrix | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Задает каждому свойству матрицы значение, приводящее к нулевому преобразованию. | Matrix | ||
Выполняет обратное преобразование исходной матрицы. | Matrix | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Применяет преобразование поворотом к объекту Matrix. | Matrix | ||
Применяет преобразование масштабированием к объекту Matrix. | Matrix | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Задает для членов объекта Matrix определенные значения
| Matrix | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает текстовое значение, содержащее список свойств объекта Matrix. | Matrix | ||
Возвращает результат применения геометрического преобразования, представленного объектом Matrix в заданной точке. | Matrix | ||
Перемещает матрицу вдоль осей x и y, как задано параметрами dx и dy. | Matrix | ||
Возвращает элементарное значение заданного объекта. | Object |
a | свойство |
public var a:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Значение, от которого зависит размещение пикселей вдоль оси x при масштабировании или повороте изображения.
Пример ( Использование этого примера )
myMatrix
и настройка его значения a
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.a); // 1 myMatrix.a = 2; trace(myMatrix.a); // 2
b | свойство |
public var b:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Значение, от которого зависит размещение пикселей вдоль оси y при повороте или наклоне изображения.
Пример ( Использование этого примера )
myMatrix
и настройка его значения b
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.b); // 0 var degrees:Number = 30; var radians:Number = (degrees/180) * Math.PI; myMatrix.b = Math.tan(radians); trace(myMatrix.b); // 0.5773502691896257
c | свойство |
public var c:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Значение, от которого зависит размещение пикселей вдоль оси x при повороте или наклоне изображения.
Пример ( Использование этого примера )
myMatrix
и настройка его значения c
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.c); // 0 var degrees:Number = 30; var radians:Number = (degrees/180) * Math.PI; myMatrix.c = Math.tan(radians); trace(myMatrix.c); // 0.5773502691896257
d | свойство |
public var d:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Значение, от которого зависит размещение пикселей вдоль оси y при масштабировании или повороте изображения.
Пример ( Использование этого примера )
myMatrix
и настройка его значения d
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.d); // 1 myMatrix.d = 2; trace(myMatrix.d); // 2
tx | свойство |
public var tx:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Расстояние, на которое перемещается каждая точка вдоль оси x.
Пример ( Использование этого примера )
myMatrix
и настройка его значения tx
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.tx); // 0 myMatrix.tx = 50; // 50 trace(myMatrix.tx);
ty | свойство |
public var ty:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Расстояние, на которое перемещается каждая точка вдоль оси y.
Пример ( Использование этого примера )
myMatrix
и настройка его значения ty
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.ty); // 0 myMatrix.ty = 50; trace(myMatrix.ty); // 50
Matrix | () | Конструктор |
public function Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Создает новый объект Matrix с заданными параметрами. В матричном представлении свойства упорядочиваются следующим образом:
Если в конструкторе new Matrix()
не указаны параметры, он создает единичную матрицу со следующими значениями:
В матричном представлении единичная матрица имеет следующий вид:
Параметрыa:Number (default = 1 ) — Значение, от которого зависит размещение пикселей вдоль оси x при масштабировании или повороте изображения.
| |
b:Number (default = 0 ) — Значение, от которого зависит размещение пикселей вдоль оси y при повороте или наклоне изображения.
| |
c:Number (default = 0 ) — Значение, от которого зависит размещение пикселей вдоль оси x при повороте или наклоне изображения.
| |
d:Number (default = 1 ) — Значение, от которого зависит размещение пикселей вдоль оси y при масштабировании или повороте изображения.
| |
tx:Number (default = 0 ) — Расстояние, на которое перемещается каждая точка вдоль оси x.
| |
ty:Number (default = 0 ) — Расстояние, на которое перемещается каждая точка вдоль оси y.
|
Пример ( Использование этого примера )
matrix_1
создается без передачи параметров в конструктор Matrix()
, а матрица matrix_2
с передачей параметров. Обратите внимание, что матрица matrix_1
, которая была создана без параметров, является единичной матрицей со значениями a
=1, b
=0, c
=0, d
=1, tx
=0, ty
=0.
import flash.geom.Matrix; var matrix_1:Matrix = new Matrix(); trace(matrix_1); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var matrix_2:Matrix = new Matrix(1, 2, 3, 4, 5, 6); trace(matrix_2); // (a=1, b=2, c=3, d=4, tx=5, ty=6)
clone | () | метод |
concat | () | метод |
public function concat(m:Matrix):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Сцепляет матрицу с текущей матрицей, фактически объединяя геометрические искажения двух матриц. В математическом представлении сцепление двух матриц равнозначно сложению матриц с использованием умножения.
Например, если матрица m1
масштабирует объект с использованием коэффициента, равного четырем, а матрица m2
поворачивает объект на 1,5707963267949 радиан (Math.PI/2
), то m1.concat(m2)
преобразует m1
в матрицу, которая выполняет масштабирование объекта с коэффициентом, равным четырем, и поворачивает объект на Math.PI/2
радиан.
Этот метод заменяет исходную матрицу сцепленной матрицей. Если необходимо выполнить сцепление двух матриц без изменения этих двух исходных матриц, сначала скопируйте исходную матрицу с помощью метода clone()
, как показано в разделе примеров классов.
Параметры
m:Matrix — Матрица, которая будет сцеплена с исходной матрицей.
|
copyColumnFrom | () | метод |
public function copyColumnFrom(column:uint, vector3D:Vector3D):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Копирует объект Vector3D в определенный столбец вызывающего объекта Matrix3D.
Параметры
column:uint — Столбец, из которого следует скопировать данные.
| |
vector3D:Vector3D — Объект Vector3D, из которого следует скопировать данные.
|
copyColumnTo | () | метод |
public function copyColumnTo(column:uint, vector3D:Vector3D):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Копирует определенный столбец вызывающего объекта Matrix в объект Vector3D. Элемент w объекта Vector3D не будет изменен.
Параметры
column:uint — Столбец, из которого следует скопировать данные.
| |
vector3D:Vector3D — Объект Vector3D, из которого следует скопировать данные.
|
copyFrom | () | метод |
public function copyFrom(sourceMatrix:Matrix):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Копирует все данные матрицы из исходного объекта Point в вызывающий объект Matrix.
Параметры
sourceMatrix:Matrix — Объект Matrix, из которого следует скопировать данные.
|
copyRowFrom | () | метод |
public function copyRowFrom(row:uint, vector3D:Vector3D):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Копирует объект Vector3D в определенную строку вызывающего объекта Matrix.
Параметры
row:uint — Строка, из которой следует скопировать данные.
| |
vector3D:Vector3D — Объект Vector3D, из которого следует скопировать данные.
|
copyRowTo | () | метод |
public function copyRowTo(row:uint, vector3D:Vector3D):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Копирует определенную строку вызывающего объекта Matrix в объект Vector3D. Элемент w объекта Vector3D не будет изменен.
Параметры
row:uint — Строка, из которой следует скопировать данные.
| |
vector3D:Vector3D — Объект Vector3D, из которого следует скопировать данные.
|
createBox | () | метод |
public function createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Включает параметры для масштабирования, поворота и перемещения. При применении к матрице задает матричные значения на основе этих параметров.
С помощью метода createBox()
можно получить такую же матрицу, как и с помощью последовательного применения методов identity()
, rotate()
, scale()
и translate()
. Например, запись mat1.createBox(2,2,Math.PI/4, 100, 100)
аналогичная следующей записи:
import flash.geom.Matrix; var mat1:Matrix = new Matrix(); mat1.identity(); mat1.rotate(Math.PI/4); mat1.scale(2,2); mat1.translate(10,20);
Параметры
scaleX:Number — Коэффициент масштабирования по горизонтали.
| |
scaleY:Number — Коэффициент масштабирования по вертикали.
| |
rotation:Number (default = 0 ) — Угол поворота (в радианах).
| |
tx:Number (default = 0 ) — Число пикселей для перемещения вправо вдоль оси x.
| |
ty:Number (default = 0 ) — Число пикселей для перемещения вниз вдоль оси y.
|
Связанные элементы API
Пример ( Использование этого примера )
myMatrix
задаются вызовом его метода createBox()
.
package { import flash.display.Shape; import flash.display.Sprite; import flash.geom.Matrix; import flash.geom.Transform; public class Matrix_createBox extends Sprite { public function Matrix_createBox() { var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createBox(1, 2, Math.PI/4, 50, 100); trace(myMatrix.toString()); // (a=0.7071067811865476, b=1.414213562373095, c=-0.7071067811865475, // d=1.4142135623730951, tx=50, ty=100) var rectangleShape:Shape = createRectangle(20, 80, 0xFF0000); addChild(rectangleShape); var rectangleTrans:Transform = new Transform(rectangleShape); rectangleTrans.matrix = myMatrix; } public function createRectangle(w:Number, h:Number, color:Number):Shape { var rect:Shape = new Shape(); rect.graphics.beginFill(color); rect.graphics.drawRect(0, 0, w, h); addChild(rect); return rect; } } }
createGradientBox | () | метод |
public function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Создает особый стиль матрицы, ожидаемый методом beginGradientFill()
и lineGradientStyle
класса Graphics. Ширина и высота масштабируются до пары scaleX
/scaleY
, а значения tx
/ty
являются коррекцией с половинными значениями ширины и высоты.
Например, рассмотрим градиент со следующими характеристиками:
GradientType.LINEAR
- Два цвета (зеленый и синий) с массивом коэффициентов
[0, 255]
SpreadMethod.PAD
InterpolationMethod.LINEAR_RGB
В следующем примере показаны градиенты, в которых матрица была определена с помощью метода createGradientBox()
с различными настройками параметров:
Параметры createGradientBox() | Итоговый градиент |
---|---|
width = 25; height = 25; rotation = 0; tx = 0; ty = 0; | |
width = 25; height = 25; rotation = 0; tx = 25; ty = 0; | |
width = 50; height = 50; rotation = 0; tx = 0; ty = 0; | |
width = 50; height = 50; rotation = Math.PI / 4; // 45 degrees tx = 0; ty = 0; |
Параметры
width:Number — Ширина градиентного прямоугольника.
| |
height:Number — Высота градиентного прямоугольника.
| |
rotation:Number (default = 0 ) — Угол поворота (в радианах).
| |
tx:Number (default = 0 ) — Расстояние перемещения (в пикселях) вправо вдоль оси x. Это значение является коррекцией с половинным значением параметра width .
| |
ty:Number (default = 0 ) — Расстояние перемещения (в пикселях) вниз по оси y. Это значение является коррекцией с половинным значением параметра height .
|
Связанные элементы API
Пример ( Использование этого примера )
myMatrix
задаются вызовом его метода createBox()
.
package { import flash.display.GradientType; import flash.display.Sprite; import flash.geom.Matrix; public class Matrix_createGradientBox extends Sprite { public function Matrix_createGradientBox() { var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createGradientBox(200, 200, 0, 50, 50); trace(myMatrix.toString()); // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150) var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [100, 100]; var ratios:Array = [0, 0xFF]; this.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix); this.graphics.drawRect(0, 0, 300, 200); } } }
deltaTransformPoint | () | метод |
public function deltaTransformPoint(point:Point):Point
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Для точки в пространстве координат до преобразования возвращает ее координаты после преобразования. В отличие от стандартного преобразования, применяемого с помощью метода transformPoint()
, в преобразовании методом deltaTransformPoint()
не учитываются параметры перемещения tx
и ty
.
Параметры
point:Point — Точка, для которой необходимо получить результат преобразования матрицы.
|
Point — Точка, полученная в результате применения преобразования матрицы.
|
identity | () | метод |
public function identity():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Задает каждому свойству матрицы значение, приводящее к нулевому преобразованию. Объект, преобразованный с применением единичной матрицы, идентичен исходному объекту.
После вызова метода identity()
в получившейся в результате матрице записаны следующие свойства: a
=1, b
=0, c
=0, d
=1, tx
=0, ty
=0.
В матричном представлении единичная матрица имеет следующий вид:
invert | () | метод |
public function invert():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Выполняет обратное преобразование исходной матрицы. Можно применить обратную матрицу к объекту для отмены преобразования, выполненного при применении исходной матрицы.
Пример ( Использование этого примера )
halfScaleMatrix
с помощью вызова метода invert()
объекта doubleScaleMatrix
. Также показано, что две матрицы являются обратными по отношению друг к другу - матрицы, которые отменяют все преобразования, выполненные противоположной матрицей - путем создания объекта originalAndInverseMatrix
, который равен объекту noScaleMatrix
.
package { import flash.display.Shape; import flash.display.Sprite; import flash.geom.Matrix; import flash.geom.Transform; public class Matrix_invert extends Sprite { public function Matrix_invert() { var rect0:Shape = createRectangle(20, 80, 0xFF0000); var rect1:Shape = createRectangle(20, 80, 0x00FF00); var rect2:Shape = createRectangle(20, 80, 0x0000FF); var rect3:Shape = createRectangle(20, 80, 0x000000); var trans0:Transform = new Transform(rect0); var trans1:Transform = new Transform(rect1); var trans2:Transform = new Transform(rect2); var trans3:Transform = new Transform(rect3); var doubleScaleMatrix:Matrix = new Matrix(2, 0, 0, 2, 0, 0); trans0.matrix = doubleScaleMatrix; trace(doubleScaleMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=0, ty=0) var noScaleMatrix:Matrix = new Matrix(1, 0, 0, 1, 0, 0); trans1.matrix = noScaleMatrix; rect1.x = 50; trace(noScaleMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var halfScaleMatrix:Matrix = doubleScaleMatrix.clone(); halfScaleMatrix.invert(); trans2.matrix = halfScaleMatrix; rect2.x = 100; trace(halfScaleMatrix.toString()); // (a=0.5, b=0, c=0, d=0.5, tx=0, ty=0) var originalAndInverseMatrix:Matrix = doubleScaleMatrix.clone(); originalAndInverseMatrix.concat(halfScaleMatrix); trans3.matrix = originalAndInverseMatrix; rect3.x = 150; trace(originalAndInverseMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) } public function createRectangle(w:Number, h:Number, color:Number):Shape { var rect:Shape = new Shape(); rect.graphics.beginFill(color); rect.graphics.drawRect(0, 0, w, h); addChild(rect); return rect; } } }
rotate | () | метод |
public function rotate(angle:Number):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Применяет преобразование поворотом к объекту Matrix.
Метод rotate()
изменяет свойства a
, b
, c
и d
объекта Matrix. В матричном представлении это действие равнозначно сцеплению текущей матрицы со следующими значениями:
Параметры
angle:Number — Угол поворота (в радианах).
|
scale | () | метод |
public function scale(sx:Number, sy:Number):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Применяет преобразование масштабированием к объекту Matrix. Ось x умножается на значение sx
, а ось y - на значение sy
.
Метод scale()
изменяет свойства a
и d
объекта Matrix. В матричном представлении это действие равнозначно сцеплению текущей матрицы со следующей матрицей:
Параметры
sx:Number — Коэффициент, используемый для масштабирования объекта вдоль оси x.
| |
sy:Number — Коэффициент, используемый для масштабирования объекта вдоль оси y.
|
setTo | () | метод |
public function setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Задает для членов объекта Matrix определенные значения
Параметры
aa:Number — значения, которые следует задать для матрицы.
| |
ba:Number | |
ca:Number | |
da:Number | |
txa:Number | |
tya:Number |
toString | () | метод |
transformPoint | () | метод |
public function transformPoint(point:Point):Point
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает результат применения геометрического преобразования, представленного объектом Matrix в заданной точке.
Параметры
point:Point — Точка, для которой необходимо получить результат преобразования объекта Matrix.
|
Point — Точка, полученная в результате применения преобразования объекта Matrix.
|
translate | () | метод |
public function translate(dx:Number, dy:Number):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Перемещает матрицу вдоль осей x и y, как задано параметрами dx
и dy
.
Параметры
dx:Number — Значение перемещения вправо по оси x (в пикселях).
| |
dy:Number — Значение перемещения вниз по оси y (в пикселях).
|
MatrixExample
для создания большого квадрата с градиентной заливкой. Это можно сделать, выполнив следующие действия:
- В приложении создается новый объект Matrix с именем
myMatrix
и используется методtrace()
для вывода значений свойств по умолчанию для объектаmyMatrix
. - В приложении вызывается метод
createGradientBox()
с параметрамиwidth
иheight
, равными 200 пикселям, отсутствием вращения и расстоянием для перемещения вдоль осей x и y, равным 50 пикселям. - В приложении осуществляется повторная печать объекта
myMatrix
для отображения изменения после вызова методаcreateGradientBox()
. - Для управления процессом заливкой градиентного прямоугольника в приложении настраиваются три переменные:
colors
: задает плавные цветовые переходы - от сплошного красного до сплошного синего.alphas
: задает непрозрачность сплошной заливки.ratios
: задает распределение цветов, равное для красного и синего цветов.
- В приложении вызывается графический метод
beginGradientFill()
, который обрабатывает объектmyMatrix
и вызывает методlineTo()
, после выполнения которого создается прямоугольник с градиентной заливкой.
package { import flash.geom.Matrix; import flash.display.Sprite; import flash.display.GradientType; public class MatrixExample extends Sprite { public function MatrixExample() { var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createGradientBox(200, 200, 0, 50, 50); trace(myMatrix.toString()); // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150) var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [1, 1]; var ratios:Array = [0, 0xFF]; graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix); graphics.lineTo(0, 300); graphics.lineTo(300, 300); graphics.lineTo(300, 0); graphics.lineTo(0, 0); } } }
Tue Jun 12 2018, 11:34 AM Z