鴻蒙OS Matrix

2022-11-01 10:18 更新

Matrix

java.lang.Object

|---ohos.agp.utils.Matrix

public class Matrix
extends Object

配置一個(gè) 3x3 矩陣,在主要列中顯示以實(shí)現(xiàn) Canvas 實(shí)例的平移、旋轉(zhuǎn)和縮放。

此類(lèi)維護(hù)一個(gè)浮點(diǎn)數(shù)組(長(zhǎng)度為 9)以形成一個(gè) 3x3 矩陣。 它提供了轉(zhuǎn)換數(shù)組中值的接口。

Since:

3

嵌套類(lèi)摘要

修飾符和類(lèi)型 類(lèi) 描述
static class Matrix.ScaleToFit 枚舉將源矩形縮放到目標(biāo)矩形的模式。

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

構(gòu)造函數(shù) 描述
Matrix() 用于創(chuàng)建 Matrix 實(shí)例的默認(rèn)構(gòu)造函數(shù)。
Matrix(float[] srcMatrixArray) 用于創(chuàng)建 Matrix 實(shí)例的構(gòu)造函數(shù)。
Matrix(Matrix srcMatrix) 用于創(chuàng)建 Matrix 實(shí)例的構(gòu)造函數(shù)。

方法總結(jié)

修飾符和類(lèi)型 方法 描述
boolean cheapEqualTo(Matrix matrixM) 檢查此 Matrix 和指定的矩陣是否由相同的位模式表示。
void dirtyMatrixTypeCache() 將內(nèi)部緩存設(shè)置為未知狀態(tài)。
boolean equals(Object object) 檢查此 Matrix 對(duì)象是否等于指定的 Matrix 對(duì)象。
boolean equalsMatrixValue(Matrix otherMatrix) 獲取指定對(duì)象矩陣值是否等于當(dāng)前矩陣值。
float get(int index) 根據(jù)數(shù)組索引獲取矩陣值。
float[] getData() 獲取矩陣的浮點(diǎn)數(shù)組。
void getElements(float[] elements) 獲取此 Matrix 的元素值。
float getMaxScale() 通過(guò)分解縮放和傾斜元素獲得此矩陣的最大比例因子。
float getMinScale() 通過(guò)分解縮放和傾斜元素獲得此矩陣的最小比例因子。
float getPerspX() 獲取此矩陣的水平透視系數(shù)。
float getPerspY() 獲取此 Matrix 的垂直透視系數(shù)。
float getScaleX() 獲取此矩陣的水平比例因子。
float getScaleY() 獲取此矩陣的垂直比例因子。
float getSkewX() 獲取此矩陣的水平傾斜因子。
float getSkewY() 獲取此矩陣的垂直偏斜因子。
float getTranslateX() 獲取此矩陣的水平平移因子。
float getTranslateY() 獲取此矩陣的垂直平移因子。
int hashCode() 返回對(duì)象的哈希碼值。
boolean hasPerspective() 檢查此矩陣是否包含透視元素。
int index(int row, int col) 根據(jù)輸入的行號(hào)和列號(hào)計(jì)算數(shù)組索引。
boolean invert(Matrix inverse) 反轉(zhuǎn)此矩陣。
boolean isFinite() 檢查此矩陣的所有元素是否都是有限的。
boolean isFixedStepInX() 檢查在 y 軸上執(zhí)行矩陣變換后是否可以用常數(shù)向量表示 x 軸單位步長(zhǎng)。
boolean isIdentity() 檢查矩陣是否為單位矩陣。
boolean isScaleTranslate() 檢查此矩陣是否已縮放和平移。
boolean isSimilarity() 檢查此 Matrix 是否僅包含旋轉(zhuǎn)、統(tǒng)一縮放和平移。
boolean isTranslate() 檢查此矩陣是否已被翻譯。
void mapPoints(float[] pts) 對(duì)點(diǎn)數(shù)組執(zhí)行矩陣變換,并將變換結(jié)果寫(xiě)入該數(shù)組。
void mapPoints(float[] dst, float[] src) 對(duì)源點(diǎn)數(shù)組執(zhí)行矩陣變換,并將變換結(jié)果寫(xiě)入目標(biāo)數(shù)組。
void mapPoints(float[] dst, int dstIndex, float[] src, int srcIndex, int pointCount) 執(zhí)行從源數(shù)組中的指定點(diǎn)開(kāi)始的矩陣變換,并將變換結(jié)果寫(xiě)入目標(biāo)數(shù)組。
float mapRadius(float radius) 計(jì)算被此 Matrix 映射后的圓的平均半徑。
boolean mapRect(RectFloat rectFloat) 對(duì)矩形執(zhí)行矩陣變換并將變換結(jié)果寫(xiě)入該矩形。
boolean mapRect(RectFloat dst, RectFloat src) 對(duì)源矩形執(zhí)行矩陣變換并將變換結(jié)果寫(xiě)入目標(biāo)矩形。
void mapRectScaleTranslate(RectFloat dst, RectFloat src) 對(duì)源矩形進(jìn)行矩陣變換,并將變換結(jié)果存儲(chǔ)在目標(biāo)矩形中。
void multiply(Matrix otherMatrix) 計(jì)算將當(dāng)前矩陣與指定矩陣相乘的結(jié)果。
boolean postConcat(Matrix otherMatrix) 將此 Matrix 后乘以指定的矩陣。
boolean postIDiv(int divx, int divy) 將此 Matrix 與指定的比例因子進(jìn)行后乘。
void postRotate(float degrees) 將此 Matrix 與指定的旋轉(zhuǎn)進(jìn)行后乘。
boolean postRotate(float degrees, float px, float py) 將此 Matrix 與指定的旋轉(zhuǎn)和透視點(diǎn)的指定位置進(jìn)行后乘。
boolean postScale(float sx, float sy) 將此 Matrix 與指定的比例后乘。
boolean postScale(float sx, float sy, float px, float py) 將此 Matrix 與指定的比例和透視點(diǎn)的指定位置進(jìn)行后乘。
boolean postSkew(float kx, float ky) 將此 Matrix 與指定的偏斜因子進(jìn)行后乘。
boolean postSkew(float kx, float ky, float px, float py) 用指定的偏斜因子將該矩陣圍繞指定的樞軸進(jìn)行后乘。
boolean postTranslate(float dx, float dy) 將此 Matrix 與指定的平移進(jìn)行后乘。
boolean preConcat(Matrix otherMatrix) 將此 Matrix 預(yù)乘以指定的矩陣。
boolean preRotate(float degrees) 將此 Matrix 與指定的旋轉(zhuǎn)預(yù)乘。
boolean preRotate(float degrees, float px, float py) 將此 Matrix 與指定的旋轉(zhuǎn)和透視點(diǎn)的指定位置預(yù)乘。
boolean preScale(float sx, float sy) 將此矩陣預(yù)乘以指定的比例。
boolean preScale(float sx, float sy, float px, float py) 將此 Matrix 與指定的比例和透視點(diǎn)的指定位置預(yù)乘。
boolean preservesAxisAlignment() 檢查此 Matrix 是否可以將一個(gè) Rect 對(duì)象映射到另一個(gè)。
boolean preservesRightAngles() 檢查此矩陣是否僅包含旋轉(zhuǎn)、縮放(允許非均勻縮放)和平移。
boolean preSkew(float kx, float ky) 將此 Matrix 與指定的偏斜預(yù)乘。
void preSkew(float kx, float ky, float px, float py) 將此 Matrix 與指定的傾斜和透視點(diǎn)的指定位置預(yù)乘。
boolean preTranslate(float dx, float dy) 將此 Matrix 與指定的翻譯預(yù)乘。
boolean rectStaysRect() 檢查此 Matrix 是否可以將一個(gè)矩形映射到另一個(gè)矩形。
void reset() 將此 Matrix 重置為單位矩陣,也稱(chēng)為單位矩陣。
void rotate(float angle) 實(shí)現(xiàn)矩陣按指定度數(shù)的旋轉(zhuǎn)。
void scale(float scaleX, float scaleY) 實(shí)現(xiàn)矩陣在 X 軸和 Y 軸上的縮放。
boolean setConcat(Matrix matrixA, Matrix matrixB) 將此 Matrix 設(shè)置為矩陣 A 乘以矩陣 B。
void setElements(float[] elements) 設(shè)置此矩陣的元素值。
void setIdentity() 將當(dāng)前矩陣設(shè)置為單位矩陣。
void setMatrix(int row, int col, float value) 在矩陣的指定行和列中設(shè)置一個(gè)值。
void setMatrix(Matrix srcMatrix) 將指定 srcMatrix 矩陣中的值復(fù)制到當(dāng)前矩陣。
void setPerspX(float v) 設(shè)置此矩陣的水平透視系數(shù)。
void setPerspY(float v) 設(shè)置此矩陣的垂直透視系數(shù)。
boolean setPolyToPoly(float[] src, int srcIndex, float[] dst, int dstIndex, int pointCount) 設(shè)置此矩陣以使指定的源點(diǎn)映射到指定的目標(biāo)點(diǎn)。
boolean setRectToRect(RectFloat src, RectFloat dst, Matrix.ScaleToFit scaleToFit) 根據(jù)指定的縮放模式將源矩形設(shè)置在目標(biāo)矩形內(nèi)。
void setRotate(float degrees) 將矩陣設(shè)置為圍繞樞軸點(diǎn) (0,0) 旋轉(zhuǎn)指定的度數(shù)。
void setRotate(float degrees, float px, float py) 將矩陣設(shè)置為圍繞樞軸點(diǎn) (px,py) 旋轉(zhuǎn)指定的度數(shù)。
void setScale(float sx, float sy) 按指定值縮放此矩陣。
void setScale(float sx, float sy, float px, float py) 按指定值和透視點(diǎn)的指定位置縮放此矩陣。
void setScaleTranslate(float sx, float sy, float tx, float ty) 初始化此矩陣的比例和平移因子。
void setScaleX(float v) 設(shè)置此矩陣的水平比例因子。
void setScaleY(float v) 設(shè)置此矩陣的垂直比例因子。
void setSinCos(float sinValue, float cosValue) 設(shè)置此矩陣以旋轉(zhuǎn)矢量的指定水平和垂直分量圍繞透視點(diǎn) (0,0) 旋轉(zhuǎn)。
void setSinCos(float sinValue, float cosValue, float px, float py) 將此 Matrix 設(shè)置為通過(guò)旋轉(zhuǎn)向量的給定水平和垂直分量圍繞指定坐標(biāo)處的透視點(diǎn)旋轉(zhuǎn)。
void setSkew(float kx, float ky) 按指定的傾斜因子傾斜此矩陣。
void setSkew(float kx, float ky, float px, float py) 通過(guò)指定的傾斜因子圍繞指定的樞軸傾斜此矩陣。
void setSkewX(float v) 設(shè)置此矩陣的水平傾斜因子。
void setSkewY(float v) 設(shè)置此矩陣的垂直偏斜系數(shù)。
void setTranslate(float dx, float dy) 用指定的值轉(zhuǎn)換這個(gè)矩陣。
void setTranslateX(float v) 設(shè)置此矩陣的水平平移因子。
void setTranslateY(float v) 設(shè)置此矩陣的垂直平移因子。
String toString() 獲取此 Matrix 對(duì)象的字符串表示形式。
void translate(float transX, float transY) 根據(jù)X軸和Y軸的平移度實(shí)現(xiàn)矩陣的平移。
void transpose() 實(shí)現(xiàn)矩陣的轉(zhuǎn)置。
從類(lèi) java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

Matrix

public Matrix()

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

Since:

3

Matrix

public Matrix(float[] srcMatrixArray)

用于創(chuàng)建 Matrix 實(shí)例的構(gòu)造函數(shù)。

此構(gòu)造函數(shù)創(chuàng)建一個(gè) 3x3 矩陣,并復(fù)制指定的數(shù)組以初始化矩陣。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
srcMatrixArray 表示矩陣的浮點(diǎn)數(shù)組。 數(shù)組長(zhǎng)度為 9。

Matrix

public Matrix(Matrix srcMatrix)

用于創(chuàng)建 Matrix 實(shí)例的構(gòu)造函數(shù)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
srcMatrix 指示要從中復(fù)制值的矩陣。

Since:

3

方法詳情

getData

public float[] getData()

獲取矩陣的浮點(diǎn)數(shù)組。

返回:

返回矩陣的浮點(diǎn)數(shù)組。 數(shù)組長(zhǎng)度為 9。

index

public int index(int row, int col)

根據(jù)輸入的行號(hào)和列號(hào)計(jì)算數(shù)組索引。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
col - 表示行索引。
row - 表示列索引。

返回:

返回?cái)?shù)組索引。

setMatrix

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

在矩陣的指定行和列中設(shè)置一個(gè)值。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
col 指示要在其中設(shè)置值的列。
row 指示要在其中設(shè)置值的行。
value 表示要設(shè)置的值。

setMatrix

public void setMatrix(Matrix srcMatrix)

將指定 srcMatrix 矩陣中的值復(fù)制到當(dāng)前矩陣。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
srcMatrix 指示要從中復(fù)制值的矩陣。

setIdentity

public void setIdentity()

將當(dāng)前矩陣設(shè)置為單位矩陣。

Since:

3

reset

public void reset()

將此 Matrix 重置為單位矩陣,也稱(chēng)為單位矩陣。

Since:

3

isIdentity

public boolean isIdentity()

檢查矩陣是否為單位矩陣。

返回:

如果矩陣是單位矩陣,則返回 true; 否則返回 false。

equalsMatrixValue

public boolean equalsMatrixValue(Matrix otherMatrix)

獲取指定對(duì)象矩陣值是否等于當(dāng)前矩陣值。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
otherMatrix 表示指定的矩陣。

返回:

如果指定對(duì)象的矩陣值等于當(dāng)前矩陣,則返回 true,否則返回 false。

Since:

3

multiply

public void multiply(Matrix otherMatrix)

計(jì)算將當(dāng)前矩陣與指定矩陣相乘的結(jié)果。

指定的矩陣放置在乘號(hào)的右側(cè)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
otherMatrix 指示要與之相乘的指定矩陣。

rotate

public void rotate(float angle)

實(shí)現(xiàn)矩陣按指定度數(shù)的旋轉(zhuǎn)。

如果角度為正值,則矩陣順時(shí)針旋轉(zhuǎn),如果為負(fù)值,則逆時(shí)針旋轉(zhuǎn)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
angle 表示矩陣的旋轉(zhuǎn)度數(shù)。

scale

public void scale(float scaleX, float scaleY)

實(shí)現(xiàn)矩陣在 X 軸和 Y 軸上的縮放。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
scaleX 表示 X 軸的縮放比例。
scaleY 表示 Y 軸的縮放比例。

translate

public void translate(float transX, float transY)

根據(jù)X軸和Y軸的平移度實(shí)現(xiàn)矩陣的平移。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
transX 表示 X 軸平移度數(shù)。
transY 表示 Y 軸平移度數(shù)。

transpose

public void transpose()

實(shí)現(xiàn)矩陣的轉(zhuǎn)置。

setRotate

public void setRotate(float degrees)

將矩陣設(shè)置為圍繞樞軸點(diǎn) (0,0) 旋轉(zhuǎn)指定的度數(shù)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
degrees 指示要旋轉(zhuǎn)的度數(shù)。

Since:

3

setRotate

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

將矩陣設(shè)置為圍繞樞軸點(diǎn) (px,py) 旋轉(zhuǎn)指定的度數(shù)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
degrees 指示要旋轉(zhuǎn)的度數(shù)。
px 表示樞軸點(diǎn)的 X 坐標(biāo)。
py 表示樞軸點(diǎn)的 Y 坐標(biāo)。

Since:

3

getElements

public void getElements(float[] elements)

獲取此 Matrix 的元素值。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
elements 表示一個(gè)數(shù)組,用于存儲(chǔ)獲取的元素值。

Since:

3

setElements

public void setElements(float[] elements)

設(shè)置此矩陣的元素值。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
elements 指示要為此矩陣設(shè)置的元素值數(shù)組。

Since:

3

invert

public boolean invert(Matrix inverse)

反轉(zhuǎn)此矩陣。

參數(shù):

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

返回:

如果此 Matrix 反轉(zhuǎn),則返回 true; 否則返回 false。

Since:

3

mapPoints

public void mapPoints(float[] pts)

對(duì)點(diǎn)數(shù)組執(zhí)行矩陣變換,并將變換結(jié)果寫(xiě)入該數(shù)組。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
pts 指示要變換的點(diǎn)數(shù)組。

Since:

3

mapPoints

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

對(duì)源點(diǎn)數(shù)組執(zhí)行矩陣變換,并將變換結(jié)果寫(xiě)入目標(biāo)數(shù)組。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
dst 表示存儲(chǔ)變換點(diǎn)的目標(biāo)數(shù)組。
src 指示要變換的點(diǎn)的源數(shù)組。

Since:

3

mapPoints

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

執(zhí)行從源數(shù)組中的指定點(diǎn)開(kāi)始的矩陣變換,并將變換結(jié)果寫(xiě)入目標(biāo)數(shù)組。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
dst 表示存儲(chǔ)變換點(diǎn)的目標(biāo)數(shù)組。
dstIndex 指示目標(biāo)數(shù)組中第一個(gè)變換點(diǎn)的索引。
src 指示要變換的點(diǎn)的源數(shù)組。
srcIndex 指示源數(shù)組中要轉(zhuǎn)換的第一個(gè)點(diǎn)的索引。
pointCount 表示要變換的點(diǎn)數(shù)。

Since:

3

postConcat

public boolean postConcat(Matrix otherMatrix)

將此 Matrix 后乘以指定的矩陣。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
otherMatrix 表示后乘的指定矩陣。

返回:

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

Since:

3

postScale

public boolean postScale(float sx, float sy)

將此 Matrix 與指定的比例后乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
sx 表示水平刻度。
sy 表示垂直刻度。

返回:

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

Since:

3

postScale

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

將此 Matrix 與指定的比例和透視點(diǎn)的指定位置進(jìn)行后乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
sx 表示水平刻度。
sy 表示垂直刻度。
px 表示縮放中心點(diǎn)的X坐標(biāo)。
py 表示縮放中心點(diǎn)的 Y 坐標(biāo)。

返回:

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

Since:

3

postTranslate

public boolean postTranslate(float dx, float dy)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
dx 指示要平移的水平長(zhǎng)度。
dy 指示要平移的垂直長(zhǎng)度。

返回:

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

Since:

3

preConcat

public boolean preConcat(Matrix otherMatrix)

將此 Matrix 預(yù)乘以指定的矩陣。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
otherMatrix 表示用于預(yù)乘的指定矩陣。

返回:

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

Since:

3

preRotate

public boolean preRotate(float degrees)

將此 Matrix 與指定的旋轉(zhuǎn)預(yù)乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
degrees 指示要旋轉(zhuǎn)的度數(shù)。

返回:

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

Since:

3

preRotate

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

將此 Matrix 與指定的旋轉(zhuǎn)和透視點(diǎn)的指定位置預(yù)乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
degrees 指示要旋轉(zhuǎn)的度數(shù)。
px 表示旋轉(zhuǎn)中心點(diǎn)的 X 坐標(biāo)。
py 表示旋轉(zhuǎn)中心點(diǎn)的 Y 坐標(biāo)。

返回:

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

Since:

3

setScale

public void setScale(float sx, float sy)

按指定值縮放此矩陣。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
sx 表示水平刻度。
sy 表示垂直刻度。

Since:

3

setScale

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

按指定值和透視點(diǎn)的指定位置縮放此矩陣。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
sx 表示水平刻度。
sy 表示垂直刻度。
px 表示縮放中心點(diǎn)的X坐標(biāo)。
py 表示縮放中心點(diǎn)的 Y 坐標(biāo)。

Since:

3

preTranslate

public boolean preTranslate(float dx, float dy)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
dx 指示要平移的水平長(zhǎng)度。
dy 指示要平移的垂直長(zhǎng)度。

返回:

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

Since:

3

setTranslate

public void setTranslate(float dx, float dy)

用指定的值轉(zhuǎn)換這個(gè)矩陣。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
dx 指示要平移的水平長(zhǎng)度。
dy 指示要平移的垂直長(zhǎng)度。

Since:

3

preScale

public boolean preScale(float sx, float sy)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
sx 表示水平刻度。
sy 表示垂直刻度。

返回:

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

Since:

3

preScale

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

將此 Matrix 與指定的比例和透視點(diǎn)的指定位置預(yù)乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
sx 表示水平刻度。
sy 表示垂直刻度。
px 表示縮放中心點(diǎn)的X坐標(biāo)。
py 表示縮放中心點(diǎn)的 Y 坐標(biāo)。

返回:

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

Since:

3

preSkew

public boolean preSkew(float kx, float ky)

將此 Matrix 與指定的偏斜預(yù)乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
kx 表示水平傾斜。
ky 表示垂直傾斜。

返回:

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

Since:

3

mapRadius

public float mapRadius(float radius)

計(jì)算被此 Matrix 映射后的圓的平均半徑。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
radius 表示映射后圓的半徑。

返回:

返回映射后圓的平均半徑。

Since:

3

postRotate

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

將此 Matrix 與指定的旋轉(zhuǎn)和透視點(diǎn)的指定位置進(jìn)行后乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
degrees 指示要旋轉(zhuǎn)的度數(shù)。
px 表示旋轉(zhuǎn)中心點(diǎn)的 X 坐標(biāo)。
py 表示旋轉(zhuǎn)中心點(diǎn)的 Y 坐標(biāo)。

返回:

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

Since:

3

mapRect

public boolean mapRect(RectFloat rectFloat)

對(duì)矩形執(zhí)行矩陣變換并將變換結(jié)果寫(xiě)入該矩形。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
rectFloat 指示要變換的矩形。

返回:

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

Since:

3

mapRect

public boolean mapRect(RectFloat dst, RectFloat src)

對(duì)源矩形執(zhí)行矩陣變換并將變換結(jié)果寫(xiě)入目標(biāo)矩形。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
dst 表示存儲(chǔ)變換結(jié)果的目標(biāo)矩形。
src 指示要變換的源矩形。

返回:

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

Since:

3

setRectToRect

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

根據(jù)指定的縮放模式將源矩形設(shè)置在目標(biāo)矩形內(nèi)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
src 指示源矩形。
dst 指示目標(biāo)矩形
scaleToFit 指示縮放模式,如 ScaleToFit 中所列舉的。

返回:

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

Since:

3

setSkew

public void setSkew(float kx, float ky)

按指定的傾斜因子傾斜此矩陣。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
kx 表示水平傾斜因子。
ky 指示垂直偏斜系數(shù)。

Since:

4

setSkew

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

通過(guò)指定的傾斜因子圍繞指定的樞軸傾斜此矩陣。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
kx 表示水平傾斜因子。
ky 指示垂直偏斜系數(shù)。
px 指示傾斜樞軸的 x 坐標(biāo)。
py 指示傾斜樞軸的 y 坐標(biāo)。

Since:

4

setConcat

public boolean setConcat(Matrix matrixA, Matrix matrixB)

將此 Matrix 設(shè)置為矩陣 A 乘以矩陣 B。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
matrixA 表示矩陣 A。
matrixB 表示矩陣 B。

返回:

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

Since:

4

postSkew

public boolean postSkew(float kx, float ky)

將此 Matrix 與指定的偏斜因子進(jìn)行后乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
kx 表示水平傾斜因子。
ky 指示垂直偏斜系數(shù)。

返回:

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

Since:

4

postSkew

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

用指定的偏斜因子將該矩陣圍繞指定的樞軸進(jìn)行后乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
kx 表示水平傾斜因子。
ky 指示垂直偏斜系數(shù)。
px 指示傾斜樞軸的 x 坐標(biāo)。
py 指示傾斜樞軸的 y 坐標(biāo)。

返回:

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

Since:

4

setPolyToPoly

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

設(shè)置此矩陣以使指定的源點(diǎn)映射到指定的目標(biāo)點(diǎn)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
src 表示源點(diǎn)數(shù)組。
srcIndex 指示要在源點(diǎn)數(shù)組中使用的第一對(duì)點(diǎn)的索引。
dst 指示目標(biāo)點(diǎn)數(shù)組。
dstIndex 指示要在目標(biāo)點(diǎn)數(shù)組中使用的第一對(duì)點(diǎn)的索引。
pointCount 表示點(diǎn)數(shù)。

返回:

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

Since:

4

rectStaysRect

public boolean rectStaysRect()

檢查此 Matrix 是否可以將一個(gè)矩形映射到另一個(gè)矩形。 此方法等效于 preservesAxisAlignment()。

返回:

如果此 Matrix 可以將一個(gè)矩形映射到另一個(gè)矩形,則返回 true; 否則返回 false。

Since:

4

isScaleTranslate

public boolean isScaleTranslate()

檢查此矩陣是否已縮放和平移。

返回:

如果已執(zhí)行縮放和平移,則返回 true; 否則返回 false。

Since:

4

isTranslate

public boolean isTranslate()

檢查此矩陣是否已被翻譯。

返回:

如果已執(zhí)行翻譯,則返回 true; 否則返回 false。

Since:

4

preservesAxisAlignment

public boolean preservesAxisAlignment()

檢查此 Matrix 是否可以將一個(gè) Rect 對(duì)象映射到另一個(gè)。 此方法等效于 rectStaysRect()。

返回:

如果此 Matrix 可以將一個(gè) Rect 對(duì)象映射到另一個(gè),則返回 true; 否則返回 false。

Since:

4

hasPerspective

public boolean hasPerspective()

檢查此矩陣是否包含透視元素。

返回:

如果包含透視元素,則返回 true; 否則返回 false。

Since:

4

isSimilarity

public boolean isSimilarity()

檢查此 Matrix 是否僅包含旋轉(zhuǎn)、統(tǒng)一縮放和平移。

返回:

如果只包含旋轉(zhuǎn)、統(tǒng)一縮放和平移,則返回 true; 否則返回 false。

Since:

4

preservesRightAngles

public boolean preservesRightAngles()

檢查此矩陣是否僅包含旋轉(zhuǎn)、縮放(允許非均勻縮放)和平移。

返回:

如果僅包含旋轉(zhuǎn)、縮放(允許非均勻縮放)和平移,則返回 true; 否則返回 false。

Since:

4

get

public float get(int index)

根據(jù)數(shù)組索引獲取矩陣值。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
index 表示數(shù)組索引,取值范圍為 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()

獲取此矩陣的水平透視系數(shù)。

返回:

返回水平透視系數(shù)。

Since:

4

getPerspY

public float getPerspY()

獲取此 Matrix 的垂直透視系數(shù)。

返回:

返回垂直透視因子。

Since:

4

setScaleX

public void setScaleX(float v)

設(shè)置此矩陣的水平比例因子。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
v 指示要設(shè)置的水平比例因子。

Since:

4

setScaleY

public void setScaleY(float v)

設(shè)置此矩陣的垂直比例因子。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
v 指示要設(shè)置的垂直比例因子。

Since:

4

setSkewX

public void setSkewX(float v)

設(shè)置此矩陣的水平傾斜因子。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
v 指示要設(shè)置的水平傾斜因子。

Since:

4

setSkewY

public void setSkewY(float v)

設(shè)置此矩陣的垂直偏斜系數(shù)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
v 指示要設(shè)置的垂直偏斜系數(shù)。

Since:

4

setTranslateX

public void setTranslateX(float v)

設(shè)置此矩陣的水平平移因子。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
v 指示要設(shè)置的水平平移因子。

Since:

4

setTranslateY

public void setTranslateY(float v)

設(shè)置此矩陣的垂直平移因子。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
v 指示要設(shè)置的垂直平移因子。

Since:

4

setPerspX

public void setPerspX(float v)

設(shè)置此矩陣的水平透視系數(shù)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
v 指示要設(shè)置的水平透視系數(shù)。

Since:

4

setPerspY

public void setPerspY(float v)

設(shè)置此矩陣的垂直透視系數(shù)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
v 指示要設(shè)置的垂直透視系數(shù)。

Since:

4

setSinCos

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

將此 Matrix 設(shè)置為通過(guò)旋轉(zhuǎn)向量的給定水平和垂直分量圍繞指定坐標(biāo)處的透視點(diǎn)旋轉(zhuǎn)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
sinValue 表示旋轉(zhuǎn)向量的水平分量。
cosValue 表示旋轉(zhuǎn)向量的垂直分量。
px 表示透視點(diǎn)的x坐標(biāo)。
py 表示透視點(diǎn)的y坐標(biāo)。

Since:

4

setSinCos

public void setSinCos(float sinValue, float cosValue)

設(shè)置此矩陣以旋轉(zhuǎn)矢量的指定水平和垂直分量圍繞透視點(diǎn) (0,0) 旋轉(zhuǎn)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
sinValue 表示旋轉(zhuǎn)向量的水平分量。
cosValue 表示旋轉(zhuǎn)向量的垂直分量。

Since:

4

preSkew

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

將此 Matrix 與指定的傾斜和透視點(diǎn)的指定位置預(yù)乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
kx 表示水平傾斜因子。
ky 指示垂直偏斜系數(shù)。
px 指示傾斜樞軸的 x 坐標(biāo)。
py 指示傾斜樞軸的 y 坐標(biāo)。

Since:

4

postIDiv

public boolean postIDiv(int divx, int divy)

將此 Matrix 與指定的比例因子進(jìn)行后乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
divx 表示水平比例因子的倒數(shù)。
divy 表示垂直比例因子的倒數(shù)。

返回:

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

Since:

4

postRotate

public void postRotate(float degrees)

將此 Matrix 與指定的旋轉(zhuǎn)進(jìn)行后乘。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
degrees 指示要旋轉(zhuǎn)的度數(shù)。

Since:

4

mapRectScaleTranslate

public void mapRectScaleTranslate(RectFloat dst, RectFloat src)

對(duì)源矩形進(jìn)行矩陣變換,并將變換結(jié)果存儲(chǔ)在目標(biāo)矩形中。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
dst 表示存儲(chǔ)變換結(jié)果的目標(biāo)矩形。
src 指示要變換的源矩形。

Since:

4

isFixedStepInX

public boolean isFixedStepInX()

檢查在 y 軸上執(zhí)行矩陣變換后是否可以用常數(shù)向量表示 x 軸單位步長(zhǎng)。

返回:

如果 x-aix 單位步長(zhǎng)可以用一個(gè)常數(shù)向量表示,則返回 true,即這個(gè) Matrix 沒(méi)有復(fù)透視; 否則返回 false。

Since:

4

cheapEqualTo

public boolean cheapEqualTo(Matrix matrixM)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
matrixM 指示要比較的指定矩陣。

返回:

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

Since:

4

getMinScale

public float getMinScale()

通過(guò)分解縮放和傾斜元素獲得此矩陣的最小比例因子。

返回:

返回最小比例因子。

Since:

4

getMaxScale

public float getMaxScale()

通過(guò)分解縮放和傾斜元素獲得此矩陣的最大比例因子。

返回:

返回最大比例因子。

Since:

4

dirtyMatrixTypeCache

public void dirtyMatrixTypeCache()

將內(nèi)部緩存設(shè)置為未知狀態(tài)。

Since:

4

setScaleTranslate

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

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
sx 指示要初始化的水平比例因子。
sy 指示要初始化的垂直比例因子。
tx 指示要初始化的水平平移因子。
ty 指示要初始化的垂直平移因子。

Since:

4

isFinite

public boolean isFinite()

檢查此矩陣的所有元素是否都是有限的。

返回:

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

Since:

4

equals

public boolean equals(Object object)

檢查此 Matrix 對(duì)象是否等于指定的 Matrix 對(duì)象。

覆蓋:

類(lèi) Object 中的等于

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
object 指示要比較的 Matrix 對(duì)象。

返回:

如果兩個(gè)對(duì)象相等則返回真; 否則返回 false。

Since:

5

hashCode

public int hashCode()

從類(lèi)復(fù)制的描述:對(duì)象

返回對(duì)象的哈希碼值。 支持這種方法是為了有利于哈希表,例如 HashMap 提供的那些。

hashCode 的一般合約是:

  • 每當(dāng)在 Java 應(yīng)用程序執(zhí)行期間對(duì)同一對(duì)象多次調(diào)用時(shí),hashCode 方法必須始終返回相同的整數(shù),前提是沒(méi)有修改對(duì)象上相等比較中使用的信息。 該整數(shù)不需要從應(yīng)用程序的一次執(zhí)行到同一應(yīng)用程序的另一次執(zhí)行保持一致。
  • 如果兩個(gè)對(duì)象根據(jù) equals(Object) 方法相等,則對(duì)兩個(gè)對(duì)象中的每一個(gè)調(diào)用 hashCode 方法必須產(chǎn)生相同的整數(shù)結(jié)果。
  • 如果根據(jù) Object.equals(java.lang.Object) 方法,如果兩個(gè)對(duì)象不相等,則不要求對(duì)兩個(gè)對(duì)象中的每一個(gè)調(diào)用 hashCode 方法必須產(chǎn)生不同的整數(shù)結(jié)果。 但是,程序員應(yīng)該意識(shí)到,為不相等的對(duì)象生成不同的整數(shù)結(jié)果可能會(huì)提高哈希表的性能。

在合理可行的情況下,由 Object 類(lèi)定義的 hashCode 方法確實(shí)為不同的對(duì)象返回不同的整數(shù)。 (這通常通過(guò)將對(duì)象的內(nèi)部地址轉(zhuǎn)換為整數(shù)來(lái)實(shí)現(xiàn),但 Java? 編程語(yǔ)言不需要這種實(shí)現(xiàn)技術(shù)。)

覆蓋:

類(lèi) Object 中的 hashCode

返回:

此對(duì)象的哈希碼值。

toString

public String toString()

獲取此 Matrix 對(duì)象的字符串表示形式。

覆蓋:

類(lèi) Object 中的 toString

返回:

返回一個(gè)字符串表示。

Since:

5

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)