Matrix

描述

Matrix 类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。

您可以对显示对象执行各种图形变换,如下所示:

  • 设置一个 Matrix 对象的属性
  • 将该 Matrix 对象应用到一个 Transform 对象的 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)

参数

名称 类型 描述
values 数字[] (可选)按格式 [a b c d tx ty] 来定义矩阵值的一个数组。如未指定,则将此矩阵设为单位矩阵。

方法

clone()

说明

此方法返回 Matrix 实例的一个副本。

返回值

  • Matrix 实例的一个副本。
  • 类型 - Matrix  

concat(matrix)

说明

此方法将提供的矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。

参数

返回值

  • 此矩阵。它对于串接方法调用非常有用。
  • 类型 - Matrix  

示例

此例将一个旋转矩阵和一个缩放矩阵连接在一起。

名称 类型 描述
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)

说明

此方法将指定矩阵复制到此矩阵。

参数

返回值

  • 此矩阵。它对于串接方法调用非常有用。
  • 类型 - Matrix
名称 类型 描述
matrix Matrix 要从其复制属性的矩阵

equals(mat)

说明

此方法检查给定矩阵是否与此实例具有相同的值。

参数

返回值

  • 类型 - 布尔值
名称 类型 描述
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()

说明

此方法将矩阵设置为单位矩阵。

返回值

  • 此矩阵。它对于串接方法调用非常有用。
  • 类型 - Matrix

invert()

说明

此方法将矩阵反转。实际上,反转后的矩阵将应用相反的转换。

返回值

  • 此矩阵。它对于串接方法调用非常有用。
  • 类型 - Matrix

isIdentity()

说明

如果矩阵为单位矩阵,此方法将返回“true”。

返回值

  • 类型 - 布尔值

rotate(angle)

说明

此方法对矩阵应用旋转变换。

参数

返回值

  • 此矩阵。它对于串接方法调用非常有用。
  • 类型 - Matrix

示例

此例创建一个新的 Matrix 实例,它被初始化为单位矩阵并旋转 45 度。

名称 类型 描述
angle 数字 以弧度为单位的角度。要换算为“度”,则乘以 Math.PI/180。
var m = new flwebgl.geom.Matrix();
m.rotate(45 * Math.PI / 180);

scale(x, y)

说明

此方法对矩阵应用缩放变换。

参数

返回值

  • 此矩阵。它对于串接方法调用非常有用。
  • 类型 - Matrix

示例

此例创建一个新的 Matrix 实例,它被初始化为单位矩阵并沿水平和垂直方向各放大 2 倍。

名称 类型 描述
x 数字 水平缩放因子。
y 数字 垂直缩放因子。
var m = new flwebgl.geom.Matrix();
m.scale(2, 2);

setValues(values)

说明

此方法设置矩阵元素的值。

参数

示例

请参阅 getValues() 函数下的示例。

名称 类型 描述
values
数字[] 按格式 [a b c d tx ty] 来定义矩阵值的一个数组。

transformPoint(point)

说明

此方法根据此矩阵来变换一个点。

参数

返回值

  • 转换后的点。
  • 类型 - Point
名称 类型 描述
point Point 要转换的点。

transformRect(rect)

说明

此方法根据此矩阵来变换矩形的全部 4 个点。

参数

返回值

  • 转换后的矩形。
  • 类型 - Rect
名称 类型 描述
rect Rect
要转换的矩形。

translate(dx, dy)

说明

此方法沿 x 和 y 轴平移矩阵。

参数

返回值

  • 此矩阵。它对于串接方法调用非常有用。
  • 类型 - Matrix
名称 类型 描述
dx 数字 沿 X 轴向右移动的量。
dy 数字 沿 Y 轴向下移动的量。
Adobe 徽标

登录到您的帐户