鸿蒙OS Matrix44
Matrix44
java.lang.Object
|---ohos.agp.utils.Matrix44
public class Matrix44
extends Object
表示一个 4x4 矩阵。
这个类包含一个包含 16 个浮点数的数组来描述 4x4 矩阵。
Since:
4
构造函数摘要
构造函数 | 描述 |
---|---|
Matrix44() | 用于创建 Matrix44 实例的默认构造函数。 |
Matrix44(Matrix44 srcMatrix) | 用于使用现有矩阵创建 Matrix44 实例的构造函数。 |
Matrix44(Matrix44 matrixA, Matrix44 matrixB) | 用于使用两个指定矩阵创建 Matrix44 实例的构造函数。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
double | determinant() | 计算此 Matrix44 的行列式。 |
float | get(int row, int col) | 获取此 Matrix44 中指定位置的值,并返回一个浮点数。 |
double | getDouble(int row, int col) | 获取此 Matrix44 中指定位置的双精度值。 |
float | getFloat(int row, int col) | 获取此 Matrix44 中指定位置的浮点值。 |
boolean | hasPerspective() | 检查此 Matrix44 是否包含透视元素。 |
boolean | invert(Matrix44 inverse) | 反转此 Matrix44。 |
boolean | isIdentity() | 检查此 Matrix44 是否为单位矩阵。 |
boolean | isScale() | 检查此 Matrix44 是否包含缩放或是否为单位矩阵。 |
boolean | isScaleTranslate() | 检查此 Matrix44 是否仅包含平移和缩放,或者它是否为单位矩阵。 |
boolean | isTranslate() | 检查此 Matrix44 是否包含平移或是否为单位矩阵。 |
void | postConcat(Matrix44 matrixM) | 将此 Matrix44 与指定矩阵进行后乘,并将乘法结果保存在此 Matrix44 中。 |
void | postScale(float scale) | 将此 Matrix44 后乘以指定的比例。 |
void | postScale(float sx, float sy, float sz) | 将此 Matrix44 后乘以指定的比例。 |
void | postTranslate(float dx, float dy, float dz) | 将此 Matrix44 与指定的平移进行后乘。 |
void | preConcat(Matrix44 matrixM) | 将此 Matrix44 与指定矩阵预乘,并将乘法结果保存在此 Matrix44 中。 |
void | preScale(float scale) | 将此 Matrix44 预乘以指定的比例。 |
void | preScale(float sx, float sy, float sz) | 将此 Matrix44 预乘以指定的比例。 |
void | preTranslate(float dx, float dy, float dz) | 将此 Matrix44 与指定的翻译预乘。 |
void | reset() | 将此 Matrix44 重置为单位矩阵。 |
void | set(int row, int col, float value) | 为此 Matrix44 中的指定位置设置浮点类型的值。 |
void | setConcat(Matrix44 matrixA, Matrix44 matrixB) | 将此 Matrix44 设置为两个指定矩阵的乘法结果。 |
void | setDouble(int row, int col, double value) | 为此 Matrix44 中的指定位置设置双精度值。 |
void | setFloat(int row, int col, float value) | 设置此 Matrix44 中指定位置的浮点值。 |
void | setIdentity() | 将此 Matrix44 设置为单位矩阵。 |
void | setRotateAbout(float x, float y, float z, float radians) | 围绕向量 [x, y, z] 旋转指定的弧度。 |
void | setRotateAboutUnit(float x, float y, float z, float radians) | 围绕向量 [x, y, z] 作为单位向量旋转指定的弧度。 |
void | setRotateDegreesAbout(float x, float y, float z, float degrees) | 围绕向量 [x, y, z] 旋转指定角度。 |
void | setScale(float scale) | 按指定大小缩放此 Matrix44。 |
void | setScale(float sx, float sy, float sz) | 按指定大小缩放此 Matrix44。 |
void | setTranslate(float dx, float dy, float dz) | 用指定的长度翻译这个 Matrix44。 |
void | transpose() | 转置此 Matrix44。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造函数详细信息
Matrix44
public Matrix44()
用于创建 Matrix44 实例的默认构造函数。
Since:
4
Matrix44
public Matrix44(Matrix44 srcMatrix)
用于使用现有矩阵创建 Matrix44 实例的构造函数。
具体来说,现有矩阵的值被复制到创建的 Matrix44 实例中。
参数:
参数名称 | 参数描述 |
---|---|
srcMatrix | 表示现有矩阵。 |
Since:
4
Matrix44
public Matrix44(Matrix44 matrixA, Matrix44 matrixB)
用于使用两个指定矩阵创建 Matrix44 实例的构造函数。
具体而言,将指定的两个矩阵相乘,并将乘积的值复制到创建的 Matrix44 实例中。
参数:
参数名称 | 参数描述 |
---|---|
matrixA | 表示一个指定的乘法矩阵。 |
matrixB | 表示另一个指定的乘法矩阵。 |
Since:
4
方法详情
isIdentity
public boolean isIdentity()
检查此 Matrix44 是否为单位矩阵。
返回:
如果矩阵是单位矩阵,则返回 true; 否则返回 false。
Since:
4
isTranslate
public boolean isTranslate()
检查此 Matrix44 是否包含平移或是否为单位矩阵。
返回:
如果矩阵包含平移或者它是一个单位矩阵,则返回 true; 否则返回 false。
Since:
4
isScaleTranslate
public boolean isScaleTranslate()
检查此 Matrix44 是否仅包含平移和缩放,或者它是否为单位矩阵。
返回:
如果矩阵包含平移和缩放或者它是单位矩阵,则返回 true; 否则返回 false。
Since:
4
isScale
public boolean isScale()
检查此 Matrix44 是否包含缩放或是否为单位矩阵。
返回:
如果矩阵包含缩放或者它是单位矩阵,则返回 true; 否则返回 false。
Since:
4
hasPerspective
public boolean hasPerspective()
检查此 Matrix44 是否包含透视元素。
返回:
如果矩阵包含透视元素,则返回 true; 否则返回 false。
Since:
4
setIdentity
public void setIdentity()
将此 Matrix44 设置为单位矩阵。
Since:
4
reset
public void reset()
将此 Matrix44 重置为单位矩阵。
Since:
4
get
public float get(int row, int col)
获取此 Matrix44 中指定位置的值,并返回一个浮点数。
参数:
参数名称 | 参数描述 |
---|---|
row | 表示指定位置的行。 |
col | 表示指定位置的列。 |
返回:
返回指定位置的值。
Since:
4
set
public void set(int row, int col, float value)
为此 Matrix44 中的指定位置设置浮点类型的值。
参数:
参数名称 | 参数描述 |
---|---|
row | 表示指定位置的行。 |
col | 表示指定位置的列。 |
value | 表示要设置的值。 |
Since:
4
getDouble
public double getDouble(int row, int col)
获取此 Matrix44 中指定位置的双精度值。
参数:
参数名称 | 参数描述 |
---|---|
row | 表示指定位置的行。 |
col | 表示指定位置的列。 |
返回:
返回指定位置的双精度值。
Since:
4
setDouble
public void setDouble(int row, int col, double value)
为此 Matrix44 中的指定位置设置双精度值。
参数:
参数名称 | 参数描述 |
---|---|
row | 表示指定位置的行。 |
col | 表示指定位置的列。 |
value | 指示要设置的双精度值。 |
Since:
4
getFloat
public float getFloat(int row, int col)
获取此 Matrix44 中指定位置的浮点值。
参数:
参数名称 | 参数描述 |
---|---|
row | 表示指定位置的行。 |
col | 表示指定位置的列。 |
返回:
返回指定位置的浮点值。
Since:
4
setFloat
public void setFloat(int row, int col, float value)
设置此 Matrix44 中指定位置的浮点值。
参数:
参数名称 | 参数描述 |
---|---|
row | 表示指定位置的行。 |
col | 表示指定位置的列。 |
value | 指示要设置的浮点值。 |
Since:
4
setTranslate
public void setTranslate(float dx, float dy, float dz)
用指定的长度翻译这个 Matrix44。
参数:
参数名称 | 参数描述 |
---|---|
dx | 指示要在 x 轴上平移的长度。 |
dy | 指示要在 y 轴上平移的长度。 |
dz | 指示要在 z 轴上平移的长度。 |
Since:
4
preTranslate
public void preTranslate(float dx, float dy, float dz)
将此 Matrix44 与指定的翻译预乘。
参数:
参数名称 | 参数描述 |
---|---|
dx | 指示要在 x 轴上平移的长度。 |
dy | 指示要在 y 轴上平移的长度。 |
dz | 指示要在 z 轴上平移的长度。 |
Since:
4
postTranslate
public void postTranslate(float dx, float dy, float dz)
将此 Matrix44 与指定的平移进行后乘。
参数:
参数名称 | 参数描述 |
---|---|
dx | 指示要在 x 轴上平移的长度。 |
dy | 指示要在 y 轴上平移的长度。 |
dz | 指示要在 z 轴上平移的长度。 |
Since:
4
setScale
public void setScale(float sx, float sy, float sz)
按指定大小缩放此 Matrix44。
参数:
参数名称 | 参数描述 |
---|---|
sx | 指示要在 x 轴上缩放的大小。 |
sy | 指示要在 y 轴上缩放的大小。 |
sz | 指示要在 z 轴上缩放的大小。 |
Since:
4
preScale
public void preScale(float sx, float sy, float sz)
将此 Matrix44 预乘以指定的比例。
参数:
参数名称 | 参数描述 |
---|---|
sx | 指示要在 x 轴上缩放的大小。 |
sy | 指示要在 y 轴上缩放的大小。 |
sz | 指示要在 z 轴上缩放的大小。 |
Since:
4
postScale
public void postScale(float sx, float sy, float sz)
将此 Matrix44 后乘以指定的比例。
参数:
参数名称 | 参数描述 |
---|---|
sx | 指示要在 x 轴上缩放的大小。 |
sy | 指示要在 y 轴上缩放的大小。 |
sz | 指示要在 z 轴上缩放的大小。 |
Since:
4
setScale
public void setScale(float scale)
按指定大小缩放此 Matrix44。
参数:
参数名称 | 参数描述 |
---|---|
scale | 指示要缩放的大小。 该值由 x、y 和 z 轴共享。 |
Since:
4
preScale
public void preScale(float scale)
将此 Matrix44 预乘以指定的比例。
参数:
参数名称 | 参数描述 |
---|---|
scale | 指示要缩放的大小。 该值由 x、y 和 z 轴共享。 |
Since:
4
postScale
public void postScale(float scale)
将此 Matrix44 后乘以指定的比例。
参数:
参数名称 | 参数描述 |
---|---|
scale | 指示要缩放的大小。 该值由 x、y 和 z 轴共享。 |
Since:
4
setRotateDegreesAbout
public void setRotateDegreesAbout(float x, float y, float z, float degrees)
围绕向量 [x, y, z] 旋转指定角度。
参数:
参数名称 | 参数描述 |
---|---|
x | 指示要旋转的向量的第一个元素。 |
y | 指示要旋转的向量的第二个元素。 |
z | 指示要旋转的向量的第三个元素。 |
degrees | 指示要旋转的度数。 |
Since:
4
setRotateAbout
public void setRotateAbout(float x, float y, float z, float radians)
围绕向量 [x, y, z] 旋转指定的弧度。 如果向量 [x, y, z] 不是单位向量,则会自动调整大小。
参数:
参数名称 | 参数描述 |
---|---|
x | 指示要旋转的向量的第一个元素。 |
y | 指示要旋转的向量的第二个元素。 |
z | 指示要旋转的向量的第三个元素。 |
radians | 指示要旋转的弧度数。 |
Since:
4
setRotateAboutUnit
public void setRotateAboutUnit(float x, float y, float z, float radians)
围绕向量 [x, y, z] 作为单位向量旋转指定的弧度。 此方法不检查向量长度。
参数:
参数名称 | 参数描述 |
---|---|
x | 指示要旋转的向量的第一个元素。 |
y | 指示要旋转的向量的第二个元素。 |
z | 指示要旋转的向量的第三个元素。 |
radians | 指示要旋转的弧度数。 |
Since:
4
setConcat
public void setConcat(Matrix44 matrixA, Matrix44 matrixB)
将此 Matrix44 设置为两个指定矩阵的乘法结果。
参数:
参数名称 | 参数描述 |
---|---|
matrixA | 表示一个乘法矩阵。 |
matrixB | 表示用于乘法的另一个矩阵。 |
Since:
4
preConcat
public void preConcat(Matrix44 matrixM)
将此 Matrix44 与指定矩阵预乘,并将乘法结果保存在此 Matrix44 中。
参数:
参数名称 | 参数描述 |
---|---|
matrixM | 表示指定的矩阵。 |
Since:
4
postConcat
public void postConcat(Matrix44 matrixM)
将此 Matrix44 与指定矩阵进行后乘,并将乘法结果保存在此 Matrix44 中。
参数:
参数名称 | 参数描述 |
---|---|
matrixM | 表示指定的矩阵。 |
Since:
4
invert
public boolean invert(Matrix44 inverse)
反转此 Matrix44。
参数:
参数名称 | 参数描述 |
---|---|
inverse | 指示要保存此 Matrix44 的逆矩阵的矩阵。 |
返回:
如果此 Matrix44 可逆,则返回 true; 否则返回 false。
Since:
4
transpose
public void transpose()
转置此 Matrix44。
Since:
4
determinant
public double determinant()
计算此 Matrix44 的行列式。
返回:
返回行列式。
Since:
4