鸿蒙OS Matrix
Matrix
java.lang.Object
|---ohos.agp.utils.Matrix
public class Matrix
extends Object
配置一个 3x3 矩阵,在主要列中显示以实现 Canvas 实例的平移、旋转和缩放。
此类维护一个浮点数组(长度为 9)以形成一个 3x3 矩阵。 它提供了转换数组中值的接口。
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 实例的构造函数。
此构造函数创建一个 3x3 矩阵,并复制指定的数组以初始化矩阵。
参数:
参数名称 | 参数描述 |
---|---|
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