鴻蒙OS Matrix44

2022-11-01 10:41 更新

Matrix44

java.lang.Object

|---ohos.agp.utils.Matrix44

public class Matrix44
extends Object

表示一個 4x4 矩陣。

這個類包含一個包含 16 個浮點(diǎn)數(shù)的數(shù)組來描述 4x4 矩陣。

Since:

4

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
Matrix44() 用于創(chuàng)建 Matrix44 實例的默認(rèn)構(gòu)造函數(shù)。
Matrix44(Matrix44 srcMatrix) 用于使用現(xiàn)有矩陣創(chuàng)建 Matrix44 實例的構(gòu)造函數(shù)。
Matrix44(Matrix44 matrixA, Matrix44 matrixB) 用于使用兩個指定矩陣創(chuàng)建 Matrix44 實例的構(gòu)造函數(shù)。

方法總結(jié)

修飾符和類型 方法 描述
double determinant() 計算此 Matrix44 的行列式。
float get(int row, int col) 獲取此 Matrix44 中指定位置的值,并返回一個浮點(diǎn)數(shù)。
double getDouble(int row, int col) 獲取此 Matrix44 中指定位置的雙精度值。
float getFloat(int row, int col) 獲取此 Matrix44 中指定位置的浮點(diǎn)值。
boolean hasPerspective() 檢查此 Matrix44 是否包含透視元素。
boolean invert(Matrix44 inverse) 反轉(zhuǎn)此 Matrix44。
boolean isIdentity() 檢查此 Matrix44 是否為單位矩陣。
boolean isScale() 檢查此 Matrix44 是否包含縮放或是否為單位矩陣。
boolean isScaleTranslate() 檢查此 Matrix44 是否僅包含平移和縮放,或者它是否為單位矩陣。
boolean isTranslate() 檢查此 Matrix44 是否包含平移或是否為單位矩陣。
void postConcat(Matrix44 matrixM) 將此 Matrix44 與指定矩陣進(jìn)行后乘,并將乘法結(jié)果保存在此 Matrix44 中。
void postScale(float scale) 將此 Matrix44 后乘以指定的比例。
void postScale(float sx, float sy, float sz) 將此 Matrix44 后乘以指定的比例。
void postTranslate(float dx, float dy, float dz) 將此 Matrix44 與指定的平移進(jìn)行后乘。
void preConcat(Matrix44 matrixM) 將此 Matrix44 與指定矩陣預(yù)乘,并將乘法結(jié)果保存在此 Matrix44 中。
void preScale(float scale) 將此 Matrix44 預(yù)乘以指定的比例。
void preScale(float sx, float sy, float sz) 將此 Matrix44 預(yù)乘以指定的比例。
void preTranslate(float dx, float dy, float dz) 將此 Matrix44 與指定的翻譯預(yù)乘。
void reset() 將此 Matrix44 重置為單位矩陣。
void set(int row, int col, float value) 為此 Matrix44 中的指定位置設(shè)置浮點(diǎn)類型的值。
void setConcat(Matrix44 matrixA, Matrix44 matrixB) 將此 Matrix44 設(shè)置為兩個指定矩陣的乘法結(jié)果。
void setDouble(int row, int col, double value) 為此 Matrix44 中的指定位置設(shè)置雙精度值。
void setFloat(int row, int col, float value) 設(shè)置此 Matrix44 中指定位置的浮點(diǎn)值。
void setIdentity() 將此 Matrix44 設(shè)置為單位矩陣。
void setRotateAbout(float x, float y, float z, float radians) 圍繞向量 [x, y, z] 旋轉(zhuǎn)指定的弧度。
void setRotateAboutUnit(float x, float y, float z, float radians) 圍繞向量 [x, y, z] 作為單位向量旋轉(zhuǎn)指定的弧度。
void setRotateDegreesAbout(float x, float y, float z, float degrees) 圍繞向量 [x, y, z] 旋轉(zhuǎn)指定角度。
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() 轉(zhuǎn)置此 Matrix44。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

構(gòu)造函數(shù)詳細(xì)信息

Matrix44

public Matrix44()

用于創(chuàng)建 Matrix44 實例的默認(rèn)構(gòu)造函數(shù)。

Since:

4

Matrix44

public Matrix44(Matrix44 srcMatrix)

用于使用現(xiàn)有矩陣創(chuàng)建 Matrix44 實例的構(gòu)造函數(shù)。

具體來說,現(xiàn)有矩陣的值被復(fù)制到創(chuàng)建的 Matrix44 實例中。

參數(shù):

參數(shù)名稱 參數(shù)描述
srcMatrix 表示現(xiàn)有矩陣。

Since:

4

Matrix44

public Matrix44(Matrix44 matrixA, Matrix44 matrixB)

用于使用兩個指定矩陣創(chuàng)建 Matrix44 實例的構(gòu)造函數(shù)。

具體而言,將指定的兩個矩陣相乘,并將乘積的值復(fù)制到創(chuàng)建的 Matrix44 實例中。

參數(shù):

參數(shù)名稱 參數(shù)描述
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 設(shè)置為單位矩陣。

Since:

4

reset

public void reset()

將此 Matrix44 重置為單位矩陣。

Since:

4

get

public float get(int row, int col)

獲取此 Matrix44 中指定位置的值,并返回一個浮點(diǎn)數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
row 表示指定位置的行。
col 表示指定位置的列。

返回:

返回指定位置的值。

Since:

4

set

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

為此 Matrix44 中的指定位置設(shè)置浮點(diǎn)類型的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
row 表示指定位置的行。
col 表示指定位置的列。
value 表示要設(shè)置的值。

Since:

4

getDouble

public double getDouble(int row, int col)

獲取此 Matrix44 中指定位置的雙精度值。

參數(shù):

參數(shù)名稱 參數(shù)描述
row 表示指定位置的行。
col 表示指定位置的列。

返回:

返回指定位置的雙精度值。

Since:

4

setDouble

public void setDouble(int row, int col, double value)

為此 Matrix44 中的指定位置設(shè)置雙精度值。

參數(shù):

參數(shù)名稱 參數(shù)描述
row 表示指定位置的行。
col 表示指定位置的列。
value 指示要設(shè)置的雙精度值。

Since:

4

getFloat

public float getFloat(int row, int col)

獲取此 Matrix44 中指定位置的浮點(diǎn)值。

參數(shù):

參數(shù)名稱 參數(shù)描述
row 表示指定位置的行。
col 表示指定位置的列。

返回:

返回指定位置的浮點(diǎn)值。

Since:

4

setFloat

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

設(shè)置此 Matrix44 中指定位置的浮點(diǎn)值。

參數(shù):

參數(shù)名稱 參數(shù)描述
row 表示指定位置的行。
col 表示指定位置的列。
value 指示要設(shè)置的浮點(diǎn)值。

Since:

4

setTranslate

public void setTranslate(float dx, float dy, float dz)

用指定的長度翻譯這個 Matrix44。

參數(shù):

參數(shù)名稱 參數(shù)描述
dx 指示要在 x 軸上平移的長度。
dy 指示要在 y 軸上平移的長度。
dz 指示要在 z 軸上平移的長度。

Since:

4

preTranslate

public void preTranslate(float dx, float dy, float dz)

將此 Matrix44 與指定的翻譯預(yù)乘。

參數(shù):

參數(shù)名稱 參數(shù)描述
dx 指示要在 x 軸上平移的長度。
dy 指示要在 y 軸上平移的長度。
dz 指示要在 z 軸上平移的長度。

Since:

4

postTranslate

public void postTranslate(float dx, float dy, float dz)

將此 Matrix44 與指定的平移進(jìn)行后乘。

參數(shù):

參數(shù)名稱 參數(shù)描述
dx 指示要在 x 軸上平移的長度。
dy 指示要在 y 軸上平移的長度。
dz 指示要在 z 軸上平移的長度。

Since:

4

setScale

public void setScale(float sx, float sy, float sz)

按指定大小縮放此 Matrix44。

參數(shù):

參數(shù)名稱 參數(shù)描述
sx 指示要在 x 軸上縮放的大小。
sy 指示要在 y 軸上縮放的大小。
sz 指示要在 z 軸上縮放的大小。

Since:

4

preScale

public void preScale(float sx, float sy, float sz)

將此 Matrix44 預(yù)乘以指定的比例。

參數(shù):

參數(shù)名稱 參數(shù)描述
sx 指示要在 x 軸上縮放的大小。
sy 指示要在 y 軸上縮放的大小。
sz 指示要在 z 軸上縮放的大小。

Since:

4

postScale

public void postScale(float sx, float sy, float sz)

將此 Matrix44 后乘以指定的比例。

參數(shù):

參數(shù)名稱 參數(shù)描述
sx 指示要在 x 軸上縮放的大小。
sy 指示要在 y 軸上縮放的大小。
sz 指示要在 z 軸上縮放的大小。

Since:

4

setScale

public void setScale(float scale)

按指定大小縮放此 Matrix44。

參數(shù):

參數(shù)名稱 參數(shù)描述
scale 指示要縮放的大小。 該值由 x、y 和 z 軸共享。

Since:

4

preScale

public void preScale(float scale)

將此 Matrix44 預(yù)乘以指定的比例。

參數(shù):

參數(shù)名稱 參數(shù)描述
scale 指示要縮放的大小。 該值由 x、y 和 z 軸共享。

Since:

4

postScale

public void postScale(float scale)

將此 Matrix44 后乘以指定的比例。

參數(shù):

參數(shù)名稱 參數(shù)描述
scale 指示要縮放的大小。 該值由 x、y 和 z 軸共享。

Since:

4

setRotateDegreesAbout

public void setRotateDegreesAbout(float x, float y, float z, float degrees)

圍繞向量 [x, y, z] 旋轉(zhuǎn)指定角度。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 指示要旋轉(zhuǎn)的向量的第一個元素。
y 指示要旋轉(zhuǎn)的向量的第二個元素。
z 指示要旋轉(zhuǎn)的向量的第三個元素。
degrees 指示要旋轉(zhuǎn)的度數(shù)。

Since:

4

setRotateAbout

public void setRotateAbout(float x, float y, float z, float radians)

圍繞向量 [x, y, z] 旋轉(zhuǎn)指定的弧度。 如果向量 [x, y, z] 不是單位向量,則會自動調(diào)整大小。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 指示要旋轉(zhuǎn)的向量的第一個元素。
y 指示要旋轉(zhuǎn)的向量的第二個元素。
z 指示要旋轉(zhuǎn)的向量的第三個元素。
radians 指示要旋轉(zhuǎn)的弧度數(shù)。

Since:

4

setRotateAboutUnit

public void setRotateAboutUnit(float x, float y, float z, float radians)

圍繞向量 [x, y, z] 作為單位向量旋轉(zhuǎn)指定的弧度。 此方法不檢查向量長度。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 指示要旋轉(zhuǎn)的向量的第一個元素。
y 指示要旋轉(zhuǎn)的向量的第二個元素。
z 指示要旋轉(zhuǎn)的向量的第三個元素。
radians 指示要旋轉(zhuǎn)的弧度數(shù)。

Since:

4

setConcat

public void setConcat(Matrix44 matrixA, Matrix44 matrixB)

將此 Matrix44 設(shè)置為兩個指定矩陣的乘法結(jié)果。

參數(shù):

參數(shù)名稱 參數(shù)描述
matrixA 表示一個乘法矩陣。
matrixB 表示用于乘法的另一個矩陣。

Since:

4

preConcat

public void preConcat(Matrix44 matrixM)

將此 Matrix44 與指定矩陣預(yù)乘,并將乘法結(jié)果保存在此 Matrix44 中。

參數(shù):

參數(shù)名稱 參數(shù)描述
matrixM 表示指定的矩陣。

Since:

4

postConcat

public void postConcat(Matrix44 matrixM)

將此 Matrix44 與指定矩陣進(jìn)行后乘,并將乘法結(jié)果保存在此 Matrix44 中。

參數(shù):

參數(shù)名稱 參數(shù)描述
matrixM 表示指定的矩陣。

Since:

4

invert

public boolean invert(Matrix44 inverse)

反轉(zhuǎn)此 Matrix44。

參數(shù):

參數(shù)名稱 參數(shù)描述
inverse 指示要保存此 Matrix44 的逆矩陣的矩陣。

返回:

如果此 Matrix44 可逆,則返回 true; 否則返回 false。

Since:

4

transpose

public void transpose()

轉(zhuǎn)置此 Matrix44。

Since:

4

determinant

public double determinant()

計算此 Matrix44 的行列式。

返回:

返回行列式。

Since:

4

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號