鸿蒙OS Matrix

Matrix

java.lang.Object

|—ohos.agp.utils.Matrix

public class Matrix
extends Object

配置一个 3×3 矩阵,在主要列中显示以实现 Canvas 实例的平移、旋转和缩放。

此类维护一个浮点数组(长度为 9)以形成一个 3×3 矩阵。 它提供了转换数组中值的接口。

Since:

3

嵌套类摘要

修饰符和类型 描述
static class Matrix.ScaleToFit 枚举将源矩形缩放到目标矩形的模式。

构造函数摘要

构造函数 描述
Matrix() 用于创建 Matrix 实例的默认构造函数。
Matrix(float[] srcMatrixArray) 用于创建 Matrix 实例的构造函数。
Matrix(Matrix srcMatrix) 用于创建 Matrix 实例的构造函数。

方法总结

修饰符和类型 方法 描述
boolean cheapEqualTo(Matrix matrixM) 检查此 Matrix 和指定的矩阵是否由相同的位模式表示。
void dirtyMatrixTypeCache() 将内部缓存设置为未知状态。
boolean equals(Object object) 检查此 Matrix 对象是否等于指定的 Matrix 对象。
boolean equalsMatrixValue(Matrix otherMatrix) 获取指定对象矩阵值是否等于当前矩阵值。
float get(int index) 根据数组索引获取矩阵值。
float[] getData() 获取矩阵的浮点数组。
void getElements(float[] elements) 获取此 Matrix 的元素值。
float getMaxScale() 通过分解缩放和倾斜元素获得此矩阵的最大比例因子。
float getMinScale() 通过分解缩放和倾斜元素获得此矩阵的最小比例因子。
float getPerspX() 获取此矩阵的水平透视系数。
float getPerspY() 获取此 Matrix 的垂直透视系数。
float getScaleX() 获取此矩阵的水平比例因子。
float getScaleY() 获取此矩阵的垂直比例因子。
float getSkewX() 获取此矩阵的水平倾斜因子。
float getSkewY() 获取此矩阵的垂直偏斜因子。
float getTranslateX() 获取此矩阵的水平平移因子。
float getTranslateY() 获取此矩阵的垂直平移因子。
int hashCode() 返回对象的哈希码值。
boolean hasPerspective() 检查此矩阵是否包含透视元素。
int index(int row, int col) 根据输入的行号和列号计算数组索引。
boolean invert(Matrix inverse) 反转此矩阵。
boolean isFinite() 检查此矩阵的所有元素是否都是有限的。
boolean isFixedStepInX() 检查在 y 轴上执行矩阵变换后是否可以用常数向量表示 x 轴单位步长。
boolean isIdentity() 检查矩阵是否为单位矩阵。
boolean isScaleTranslate() 检查此矩阵是否已缩放和平移。
boolean isSimilarity() 检查此 Matrix 是否仅包含旋转、统一缩放和平移。
boolean isTranslate() 检查此矩阵是否已被翻译。
void mapPoints(float[] pts) 对点数组执行矩阵变换,并将变换结果写入该数组。
void mapPoints(float[] dst, float[] src) 对源点数组执行矩阵变换,并将变换结果写入目标数组。
void mapPoints(float[] dst, int dstIndex, float[] src, int srcIndex, int pointCount) 执行从源数组中的指定点开始的矩阵变换,并将变换结果写入目标数组。
float mapRadius(float radius) 计算被此 Matrix 映射后的圆的平均半径。
boolean mapRect(RectFloat rectFloat) 对矩形执行矩阵变换并将变换结果写入该矩形。
boolean mapRect(RectFloat dst, RectFloat src) 对源矩形执行矩阵变换并将变换结果写入目标矩形。
void mapRectScaleTranslate(RectFloat dst, RectFloat src) 对源矩形进行矩阵变换,并将变换结果存储在目标矩形中。
void multiply(Matrix otherMatrix) 计算将当前矩阵与指定矩阵相乘的结果。
boolean postConcat(Matrix otherMatrix) 将此 Matrix 后乘以指定的矩阵。
boolean postIDiv(int divx, int divy) 将此 Matrix 与指定的比例因子进行后乘。
void postRotate(float degrees) 将此 Matrix 与指定的旋转进行后乘。
boolean postRotate(float degrees, float px, float py) 将此 Matrix 与指定的旋转和透视点的指定位置进行后乘。
boolean postScale(float sx, float sy) 将此 Matrix 与指定的比例后乘。
boolean postScale(float sx, float sy, float px, float py) 将此 Matrix 与指定的比例和透视点的指定位置进行后乘。
boolean postSkew(float kx, float ky) 将此 Matrix 与指定的偏斜因子进行后乘。
boolean postSkew(float kx, float ky, float px, float py) 用指定的偏斜因子将该矩阵围绕指定的枢轴进行后乘。
boolean postTranslate(float dx, float dy) 将此 Matrix 与指定的平移进行后乘。
boolean preConcat(Matrix otherMatrix) 将此 Matrix 预乘以指定的矩阵。
boolean preRotate(float degrees) 将此 Matrix 与指定的旋转预乘。
boolean preRotate(float degrees, float px, float py) 将此 Matrix 与指定的旋转和透视点的指定位置预乘。
boolean preScale(float sx, float sy) 将此矩阵预乘以指定的比例。
boolean preScale(float sx, float sy, float px, float py) 将此 Matrix 与指定的比例和透视点的指定位置预乘。
boolean preservesAxisAlignment() 检查此 Matrix 是否可以将一个 Rect 对象映射到另一个。
boolean preservesRightAngles() 检查此矩阵是否仅包含旋转、缩放(允许非均匀缩放)和平移。
boolean preSkew(float kx, float ky) 将此 Matrix 与指定的偏斜预乘。
void preSkew(float kx, float ky, float px, float py) 将此 Matrix 与指定的倾斜和透视点的指定位置预乘。
boolean preTranslate(float dx, float dy) 将此 Matrix 与指定的翻译预乘。
boolean rectStaysRect() 检查此 Matrix 是否可以将一个矩形映射到另一个矩形。
void reset() 将此 Matrix 重置为单位矩阵,也称为单位矩阵。
void rotate(float angle) 实现矩阵按指定度数的旋转。
void scale(float scaleX, float scaleY) 实现矩阵在 X 轴和 Y 轴上的缩放。
boolean setConcat(Matrix matrixA, Matrix matrixB) 将此 Matrix 设置为矩阵 A 乘以矩阵 B。
void setElements(float[] elements) 设置此矩阵的元素值。
void setIdentity() 将当前矩阵设置为单位矩阵。
void setMatrix(int row, int col, float value) 在矩阵的指定行和列中设置一个值。
void setMatrix(Matrix srcMatrix) 将指定 srcMatrix 矩阵中的值复制到当前矩阵。
void setPerspX(float v) 设置此矩阵的水平透视系数。
void setPerspY(float v) 设置此矩阵的垂直透视系数。
boolean setPolyToPoly(float[] src, int srcIndex, float[] dst, int dstIndex, int pointCount) 设置此矩阵以使指定的源点映射到指定的目标点。
boolean setRectToRect(RectFloat src, RectFloat dst, Matrix.ScaleToFit scaleToFit) 根据指定的缩放模式将源矩形设置在目标矩形内。
void setRotate(float degrees) 将矩阵设置为围绕枢轴点 (0,0) 旋转指定的度数。
void setRotate(float degrees, float px, float py) 将矩阵设置为围绕枢轴点 (px,py) 旋转指定的度数。
void setScale(float sx, float sy) 按指定值缩放此矩阵。
void setScale(float sx, float sy, float px, float py) 按指定值和透视点的指定位置缩放此矩阵。
void setScaleTranslate(float sx, float sy, float tx, float ty) 初始化此矩阵的比例和平移因子。
void setScaleX(float v) 设置此矩阵的水平比例因子。
void setScaleY(float v) 设置此矩阵的垂直比例因子。
void setSinCos(float sinValue, float cosValue) 设置此矩阵以旋转矢量的指定水平和垂直分量围绕透视点 (0,0) 旋转。
void setSinCos(float sinValue, float cosValue, float px, float py) 将此 Matrix 设置为通过旋转向量的给定水平和垂直分量围绕指定坐标处的透视点旋转。
void setSkew(float kx, float ky) 按指定的倾斜因子倾斜此矩阵。
void setSkew(float kx, float ky, float px, float py) 通过指定的倾斜因子围绕指定的枢轴倾斜此矩阵。
void setSkewX(float v) 设置此矩阵的水平倾斜因子。
void setSkewY(float v) 设置此矩阵的垂直偏斜系数。
void setTranslate(float dx, float dy) 用指定的值转换这个矩阵。
void setTranslateX(float v) 设置此矩阵的水平平移因子。
void setTranslateY(float v) 设置此矩阵的垂直平移因子。
String toString() 获取此 Matrix 对象的字符串表示形式。
void translate(float transX, float transY) 根据X轴和Y轴的平移度实现矩阵的平移。
void transpose() 实现矩阵的转置。
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

构造函数详细信息

Matrix

public Matrix()

用于创建 Matrix 实例的默认构造函数。

Since:

3

Matrix

public Matrix(float[] srcMatrixArray)

用于创建 Matrix 实例的构造函数。

此构造函数创建一个 3×3 矩阵,并复制指定的数组以初始化矩阵。

参数:

参数名称 参数描述
srcMatrixArray 表示矩阵的浮点数组。 数组长度为 9。

Matrix

public Matrix(Matrix srcMatrix)

用于创建 Matrix 实例的构造函数。

参数:

参数名称 参数描述
srcMatrix 指示要从中复制值的矩阵。

Since:

3

方法详情

getData

public float[] getData()

获取矩阵的浮点数组。

返回:

返回矩阵的浮点数组。 数组长度为 9。

index

public int index(int row, int col)

根据输入的行号和列号计算数组索引。

参数:

参数名称 参数描述
col – 表示行索引。
row – 表示列索引。

返回:

返回数组索引。

setMatrix

public void setMatrix(int row, int col, float value)

在矩阵的指定行和列中设置一个值。

参数:

参数名称 参数描述
col 指示要在其中设置值的列。
row 指示要在其中设置值的行。
value 表示要设置的值。

setMatrix

public void setMatrix(Matrix srcMatrix)

将指定 srcMatrix 矩阵中的值复制到当前矩阵。

参数:

参数名称 参数描述
srcMatrix 指示要从中复制值的矩阵。

setIdentity

public void setIdentity()

将当前矩阵设置为单位矩阵。

Since:

3

reset

public void reset()

将此 Matrix 重置为单位矩阵,也称为单位矩阵。

Since:

3

isIdentity

public boolean isIdentity()

检查矩阵是否为单位矩阵。

返回:

如果矩阵是单位矩阵,则返回 true; 否则返回 false。

equalsMatrixValue

public boolean equalsMatrixValue(Matrix otherMatrix)

获取指定对象矩阵值是否等于当前矩阵值。

参数:

参数名称 参数描述
otherMatrix 表示指定的矩阵。

返回:

如果指定对象的矩阵值等于当前矩阵,则返回 true,否则返回 false。

Since:

3

multiply

public void multiply(Matrix otherMatrix)

计算将当前矩阵与指定矩阵相乘的结果。

指定的矩阵放置在乘号的右侧。

参数:

参数名称 参数描述
otherMatrix 指示要与之相乘的指定矩阵。

rotate

public void rotate(float angle)

实现矩阵按指定度数的旋转。

如果角度为正值,则矩阵顺时针旋转,如果为负值,则逆时针旋转。

参数:

参数名称 参数描述
angle 表示矩阵的旋转度数。

scale

public void scale(float scaleX, float scaleY)

实现矩阵在 X 轴和 Y 轴上的缩放。

参数:

参数名称 参数描述
scaleX 表示 X 轴的缩放比例。
scaleY 表示 Y 轴的缩放比例。

translate

public void translate(float transX, float transY)

根据X轴和Y轴的平移度实现矩阵的平移。

参数:

参数名称 参数描述
transX 表示 X 轴平移度数。
transY 表示 Y 轴平移度数。

transpose

public void transpose()

实现矩阵的转置。

setRotate

public void setRotate(float degrees)

将矩阵设置为围绕枢轴点 (0,0) 旋转指定的度数。

参数:

参数名称 参数描述
degrees 指示要旋转的度数。

Since:

3

setRotate

public void setRotate(float degrees, float px, float py)

将矩阵设置为围绕枢轴点 (px,py) 旋转指定的度数。

参数:

参数名称 参数描述
degrees 指示要旋转的度数。
px 表示枢轴点的 X 坐标。
py 表示枢轴点的 Y 坐标。

Since:

3

getElements

public void getElements(float[] elements)

获取此 Matrix 的元素值。

参数:

参数名称 参数描述
elements 表示一个数组,用于存储获取的元素值。

Since:

3

setElements

public void setElements(float[] elements)

设置此矩阵的元素值。

参数:

参数名称 参数描述
elements 指示要为此矩阵设置的元素值数组。

Since:

3

invert

public boolean invert(Matrix inverse)

反转此矩阵。

参数:

参数名称 参数描述
inverse 指示要保存此 Matrix 的逆矩阵的矩阵。

返回:

如果此 Matrix 反转,则返回 true; 否则返回 false。

Since:

3

mapPoints

public void mapPoints(float[] pts)

对点数组执行矩阵变换,并将变换结果写入该数组。

参数:

参数名称 参数描述
pts 指示要变换的点数组。

Since:

3

mapPoints

public void mapPoints(float[] dst, float[] src)

对源点数组执行矩阵变换,并将变换结果写入目标数组。

参数:

参数名称 参数描述
dst 表示存储变换点的目标数组。
src 指示要变换的点的源数组。

Since:

3

mapPoints

public void mapPoints(float[] dst, int dstIndex, float[] src, int srcIndex, int pointCount)

执行从源数组中的指定点开始的矩阵变换,并将变换结果写入目标数组。

参数:

参数名称 参数描述
dst 表示存储变换点的目标数组。
dstIndex 指示目标数组中第一个变换点的索引。
src 指示要变换的点的源数组。
srcIndex 指示源数组中要转换的第一个点的索引。
pointCount 表示要变换的点数。

Since:

3

postConcat

public boolean postConcat(Matrix otherMatrix)

将此 Matrix 后乘以指定的矩阵。

参数:

参数名称 参数描述
otherMatrix 表示后乘的指定矩阵。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

postScale

public boolean postScale(float sx, float sy)

将此 Matrix 与指定的比例后乘。

参数:

参数名称 参数描述
sx 表示水平刻度。
sy 表示垂直刻度。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

postScale

public boolean postScale(float sx, float sy, float px, float py)

将此 Matrix 与指定的比例和透视点的指定位置进行后乘。

参数:

参数名称 参数描述
sx 表示水平刻度。
sy 表示垂直刻度。
px 表示缩放中心点的X坐标。
py 表示缩放中心点的 Y 坐标。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

postTranslate

public boolean postTranslate(float dx, float dy)

将此 Matrix 与指定的平移进行后乘。

参数:

参数名称 参数描述
dx 指示要平移的水平长度。
dy 指示要平移的垂直长度。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

preConcat

public boolean preConcat(Matrix otherMatrix)

将此 Matrix 预乘以指定的矩阵。

参数:

参数名称 参数描述
otherMatrix 表示用于预乘的指定矩阵。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

preRotate

public boolean preRotate(float degrees)

将此 Matrix 与指定的旋转预乘。

参数:

参数名称 参数描述
degrees 指示要旋转的度数。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

preRotate

public boolean preRotate(float degrees, float px, float py)

将此 Matrix 与指定的旋转和透视点的指定位置预乘。

参数:

参数名称 参数描述
degrees 指示要旋转的度数。
px 表示旋转中心点的 X 坐标。
py 表示旋转中心点的 Y 坐标。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

setScale

public void setScale(float sx, float sy)

按指定值缩放此矩阵。

参数:

参数名称 参数描述
sx 表示水平刻度。
sy 表示垂直刻度。

Since:

3

setScale

public void setScale(float sx, float sy, float px, float py)

按指定值和透视点的指定位置缩放此矩阵。

参数:

参数名称 参数描述
sx 表示水平刻度。
sy 表示垂直刻度。
px 表示缩放中心点的X坐标。
py 表示缩放中心点的 Y 坐标。

Since:

3

preTranslate

public boolean preTranslate(float dx, float dy)

将此 Matrix 与指定的翻译预乘。

参数:

参数名称 参数描述
dx 指示要平移的水平长度。
dy 指示要平移的垂直长度。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

setTranslate

public void setTranslate(float dx, float dy)

用指定的值转换这个矩阵。

参数:

参数名称 参数描述
dx 指示要平移的水平长度。
dy 指示要平移的垂直长度。

Since:

3

preScale

public boolean preScale(float sx, float sy)

将此矩阵预乘以指定的比例。

参数:

参数名称 参数描述
sx 表示水平刻度。
sy 表示垂直刻度。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

preScale

public boolean preScale(float sx, float sy, float px, float py)

将此 Matrix 与指定的比例和透视点的指定位置预乘。

参数:

参数名称 参数描述
sx 表示水平刻度。
sy 表示垂直刻度。
px 表示缩放中心点的X坐标。
py 表示缩放中心点的 Y 坐标。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

preSkew

public boolean preSkew(float kx, float ky)

将此 Matrix 与指定的偏斜预乘。

参数:

参数名称 参数描述
kx 表示水平倾斜。
ky 表示垂直倾斜。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

mapRadius

public float mapRadius(float radius)

计算被此 Matrix 映射后的圆的平均半径。

参数:

参数名称 参数描述
radius 表示映射后圆的半径。

返回:

返回映射后圆的平均半径。

Since:

3

postRotate

public boolean postRotate(float degrees, float px, float py)

将此 Matrix 与指定的旋转和透视点的指定位置进行后乘。

参数:

参数名称 参数描述
degrees 指示要旋转的度数。
px 表示旋转中心点的 X 坐标。
py 表示旋转中心点的 Y 坐标。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

mapRect

public boolean mapRect(RectFloat rectFloat)

对矩形执行矩阵变换并将变换结果写入该矩形。

参数:

参数名称 参数描述
rectFloat 指示要变换的矩形。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

mapRect

public boolean mapRect(RectFloat dst, RectFloat src)

对源矩形执行矩阵变换并将变换结果写入目标矩形。

参数:

参数名称 参数描述
dst 表示存储变换结果的目标矩形。
src 指示要变换的源矩形。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

setRectToRect

public boolean setRectToRect(RectFloat src, RectFloat dst, Matrix.ScaleToFit scaleToFit)

根据指定的缩放模式将源矩形设置在目标矩形内。

参数:

参数名称 参数描述
src 指示源矩形。
dst 指示目标矩形
scaleToFit 指示缩放模式,如 ScaleToFit 中所列举的。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

3

setSkew

public void setSkew(float kx, float ky)

按指定的倾斜因子倾斜此矩阵。

参数:

参数名称 参数描述
kx 表示水平倾斜因子。
ky 指示垂直偏斜系数。

Since:

4

setSkew

public void setSkew(float kx, float ky, float px, float py)

通过指定的倾斜因子围绕指定的枢轴倾斜此矩阵。

参数:

参数名称 参数描述
kx 表示水平倾斜因子。
ky 指示垂直偏斜系数。
px 指示倾斜枢轴的 x 坐标。
py 指示倾斜枢轴的 y 坐标。

Since:

4

setConcat

public boolean setConcat(Matrix matrixA, Matrix matrixB)

将此 Matrix 设置为矩阵 A 乘以矩阵 B。

参数:

参数名称 参数描述
matrixA 表示矩阵 A。
matrixB 表示矩阵 B。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

4

postSkew

public boolean postSkew(float kx, float ky)

将此 Matrix 与指定的偏斜因子进行后乘。

参数:

参数名称 参数描述
kx 表示水平倾斜因子。
ky 指示垂直偏斜系数。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

4

postSkew

public boolean postSkew(float kx, float ky, float px, float py)

用指定的偏斜因子将该矩阵围绕指定的枢轴进行后乘。

参数:

参数名称 参数描述
kx 表示水平倾斜因子。
ky 指示垂直偏斜系数。
px 指示倾斜枢轴的 x 坐标。
py 指示倾斜枢轴的 y 坐标。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

4

setPolyToPoly

public boolean setPolyToPoly(float[] src, int srcIndex, float[] dst, int dstIndex, int pointCount)

设置此矩阵以使指定的源点映射到指定的目标点。

参数:

参数名称 参数描述
src 表示源点数组。
srcIndex 指示要在源点数组中使用的第一对点的索引。
dst 指示目标点数组。
dstIndex 指示要在目标点数组中使用的第一对点的索引。
pointCount 表示点数。

返回:

如果操作成功,则返回 true; 否则返回 false。

Since:

4

rectStaysRect

public boolean rectStaysRect()

检查此 Matrix 是否可以将一个矩形映射到另一个矩形。 此方法等效于 preservesAxisAlignment()。

返回:

如果此 Matrix 可以将一个矩形映射到另一个矩形,则返回 true; 否则返回 false。

Since:

4

isScaleTranslate

public boolean isScaleTranslate()

检查此矩阵是否已缩放和平移。

返回:

如果已执行缩放和平移,则返回 true; 否则返回 false。

Since:

4

isTranslate

public boolean isTranslate()

检查此矩阵是否已被翻译。

返回:

如果已执行翻译,则返回 true; 否则返回 false。

Since:

4

preservesAxisAlignment

public boolean preservesAxisAlignment()

检查此 Matrix 是否可以将一个 Rect 对象映射到另一个。 此方法等效于 rectStaysRect()。

返回:

如果此 Matrix 可以将一个 Rect 对象映射到另一个,则返回 true; 否则返回 false。

Since:

4

hasPerspective

public boolean hasPerspective()

检查此矩阵是否包含透视元素。

返回:

如果包含透视元素,则返回 true; 否则返回 false。

Since:

4

isSimilarity

public boolean isSimilarity()

检查此 Matrix 是否仅包含旋转、统一缩放和平移。

返回:

如果只包含旋转、统一缩放和平移,则返回 true; 否则返回 false。

Since:

4

preservesRightAngles

public boolean preservesRightAngles()

检查此矩阵是否仅包含旋转、缩放(允许非均匀缩放)和平移。

返回:

如果仅包含旋转、缩放(允许非均匀缩放)和平移,则返回 true; 否则返回 false。

Since:

4

get

public float get(int index)

根据数组索引获取矩阵值。

参数:

参数名称 参数描述
index 表示数组索引,取值范围为 0 到 8。

返回:

返回矩阵值。

Since:

4

getScaleX

public float getScaleX()

获取此矩阵的水平比例因子。

返回:

返回水平比例因子。

Since:

4

getScaleY

public float getScaleY()

获取此矩阵的垂直比例因子。

返回:

返回垂直比例因子。

Since:

4

getSkewY

public float getSkewY()

获取此矩阵的垂直偏斜因子。

返回:

返回垂直偏斜因子。

Since:

4

getSkewX

public float getSkewX()

获取此矩阵的水平倾斜因子。

返回:

返回水平倾斜因子。

Since:

4

getTranslateX

public float getTranslateX()

获取此矩阵的水平平移因子。

返回:

返回水平平移因子。

Since:

4

getTranslateY

public float getTranslateY()

获取此矩阵的垂直平移因子。

返回:

返回垂直平移因子。

Since:

4

getPerspX

public float getPerspX()

获取此矩阵的水平透视系数。

返回:

返回水平透视系数。

Since:

4

getPerspY

public float getPerspY()

获取此 Matrix 的垂直透视系数。

返回:

返回垂直透视因子。

Since:

4

setScaleX

public void setScaleX(float v)

设置此矩阵的水平比例因子。

参数:

参数名称 参数描述
v 指示要设置的水平比例因子。

Since:

4

setScaleY

public void setScaleY(float v)

设置此矩阵的垂直比例因子。

参数:

参数名称 参数描述
v 指示要设置的垂直比例因子。

Since:

4

setSkewX

public void setSkewX(float v)

设置此矩阵的水平倾斜因子。

参数:

参数名称 参数描述
v 指示要设置的水平倾斜因子。

Since:

4

setSkewY

public void setSkewY(float v)

设置此矩阵的垂直偏斜系数。

参数:

参数名称 参数描述
v 指示要设置的垂直偏斜系数。

Since:

4

setTranslateX

public void setTranslateX(float v)

设置此矩阵的水平平移因子。

参数:

参数名称 参数描述
v 指示要设置的水平平移因子。

Since:

4

setTranslateY

public void setTranslateY(float v)

设置此矩阵的垂直平移因子。

参数:

参数名称 参数描述
v 指示要设置的垂直平移因子。

Since:

4

setPerspX

public void setPerspX(float v)

设置此矩阵的水平透视系数。

参数:

参数名称 参数描述
v 指示要设置的水平透视系数。

Since:

4

setPerspY

public void setPerspY(float v)

设置此矩阵的垂直透视系数。

参数:

参数名称 参数描述
v 指示要设置的垂直透视系数。

Since:

4

setSinCos

public void setSinCos(float sinValue, float cosValue, float px, float py)

将此 Matrix 设置为通过旋转向量的给定水平和垂直分量围绕指定坐标处的透视点旋转。

参数:

参数名称 参数描述
sinValue 表示旋转向量的水平分量。
cosValue 表示旋转向量的垂直分量。
px 表示透视点的x坐标。
py 表示透视点的y坐标。

Since:

4

setSinCos

public void setSinCos(float sinValue, float cosValue)

设置此矩阵以旋转矢量的指定水平和垂直分量围绕透视点 (0,0) 旋转。

参数:

参数名称 参数描述
sinValue 表示旋转向量的水平分量。
cosValue 表示旋转向量的垂直分量。

Since:

4

preSkew

public void preSkew(float kx, float ky, float px, float py)

将此 Matrix 与指定的倾斜和透视点的指定位置预乘。

参数:

参数名称 参数描述
kx 表示水平倾斜因子。
ky 指示垂直偏斜系数。
px 指示倾斜枢轴的 x 坐标。
py 指示倾斜枢轴的 y 坐标。

Since:

4

postIDiv

public boolean postIDiv(int divx, int divy)

将此 Matrix 与指定的比例因子进行后乘。

参数:

参数名称 参数描述
divx 表示水平比例因子的倒数。
divy 表示垂直比例因子的倒数。

返回:

如果操作成功,则返回 true; 如果 divx 或 divy 为 0,则返回 false。

Since:

4

postRotate

public void postRotate(float degrees)

将此 Matrix 与指定的旋转进行后乘。

参数:

参数名称 参数描述
degrees 指示要旋转的度数。

Since:

4

mapRectScaleTranslate

public void mapRectScaleTranslate(RectFloat dst, RectFloat src)

对源矩形进行矩阵变换,并将变换结果存储在目标矩形中。

参数:

参数名称 参数描述
dst 表示存储变换结果的目标矩形。
src 指示要变换的源矩形。

Since:

4

isFixedStepInX

public boolean isFixedStepInX()

检查在 y 轴上执行矩阵变换后是否可以用常数向量表示 x 轴单位步长。

返回:

如果 x-aix 单位步长可以用一个常数向量表示,则返回 true,即这个 Matrix 没有复透视; 否则返回 false。

Since:

4

cheapEqualTo

public boolean cheapEqualTo(Matrix matrixM)

检查此 Matrix 和指定的矩阵是否由相同的位模式表示。

参数:

参数名称 参数描述
matrixM 指示要比较的指定矩阵。

返回:

如果此 Matrix 和指定的矩阵具有相同的位模式,则返回 true; 否则返回 false。

Since:

4

getMinScale

public float getMinScale()

通过分解缩放和倾斜元素获得此矩阵的最小比例因子。

返回:

返回最小比例因子。

Since:

4

getMaxScale

public float getMaxScale()

通过分解缩放和倾斜元素获得此矩阵的最大比例因子。

返回:

返回最大比例因子。

Since:

4

dirtyMatrixTypeCache

public void dirtyMatrixTypeCache()

将内部缓存设置为未知状态。

Since:

4

setScaleTranslate

public void setScaleTranslate(float sx, float sy, float tx, float ty)

初始化此矩阵的比例和平移因子。

参数:

参数名称 参数描述
sx 指示要初始化的水平比例因子。
sy 指示要初始化的垂直比例因子。
tx 指示要初始化的水平平移因子。
ty 指示要初始化的垂直平移因子。

Since:

4

isFinite

public boolean isFinite()

检查此矩阵的所有元素是否都是有限的。

返回:

如果所有元素都是有限的,则返回 true; 否则返回 false。

Since:

4

equals

public boolean equals(Object object)

检查此 Matrix 对象是否等于指定的 Matrix 对象。

覆盖:

类 Object 中的等于

参数:

参数名称 参数描述
object 指示要比较的 Matrix 对象。

返回:

如果两个对象相等则返回真; 否则返回 false。

Since:

5

hashCode

public int hashCode()

从类复制的描述:对象

返回对象的哈希码值。 支持这种方法是为了有利于哈希表,例如 HashMap 提供的那些。

hashCode 的一般合约是:

  • 每当在 Java 应用程序执行期间对同一对象多次调用时,hashCode 方法必须始终返回相同的整数,前提是没有修改对象上相等比较中使用的信息。 该整数不需要从应用程序的一次执行到同一应用程序的另一次执行保持一致。
  • 如果两个对象根据 equals(Object) 方法相等,则对两个对象中的每一个调用 hashCode 方法必须产生相同的整数结果。
  • 如果根据 Object.equals(java.lang.Object) 方法,如果两个对象不相等,则不要求对两个对象中的每一个调用 hashCode 方法必须产生不同的整数结果。 但是,程序员应该意识到,为不相等的对象生成不同的整数结果可能会提高哈希表的性能。

在合理可行的情况下,由 Object 类定义的 hashCode 方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但 Java™ 编程语言不需要这种实现技术。)

覆盖:

类 Object 中的 hashCode

返回:

此对象的哈希码值。

toString

public String toString()

获取此 Matrix 对象的字符串表示形式。

覆盖:

类 Object 中的 toString

返回:

返回一个字符串表示。

Since:

5

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《鸿蒙OS Matrix》
文章链接:https://zhuji.vsping.com/314833.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。