鴻蒙OS Matrix44

2022-11-01 10:41 更新

Matrix44

java.lang.Object

|---ohos.agp.utils.Matrix44

public class Matrix44
extends Object

表示一個 4x4 矩陣。

這個類包含一個包含 16 個浮點數的數組來描述 4x4 矩陣。

Since:

4

構造函數摘要

構造函數 描述
Matrix44() 用于創(chuàng)建 Matrix44 實例的默認構造函數。
Matrix44(Matrix44 srcMatrix) 用于使用現有矩陣創(chuàng)建 Matrix44 實例的構造函數。
Matrix44(Matrix44 matrixA, Matrix44 matrixB) 用于使用兩個指定矩陣創(chuàng)建 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()

用于創(chuàng)建 Matrix44 實例的默認構造函數。

Since:

4

Matrix44

public Matrix44(Matrix44 srcMatrix)

用于使用現有矩陣創(chuàng)建 Matrix44 實例的構造函數。

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

參數:

參數名稱 參數描述
srcMatrix 表示現有矩陣。

Since:

4

Matrix44

public Matrix44(Matrix44 matrixA, Matrix44 matrixB)

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

具體而言,將指定的兩個矩陣相乘,并將乘積的值復制到創(chuàng)建的 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

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號