class cymel.core.datatypes.matrix.Matrix¶
- class cymel.core.datatypes.matrix.Matrix(*args, **kwargs)¶
ベースクラス:
object
4x4 マトリックスクラス。
コンストラクタでは以下の値を指定可能。
16値のシーケンス
3つの
Vector
による 3x3 部分の行ベクトル指定。追加で4つめの
Vector
で translate 値の指定。transpose=True オプションの指定で 3x3 部分の転置。
Methods:
addT
(v)addTranslation
の別名。平行移動値を加算する。
adj
()adjugate
の別名。adjoint
()adjugate
の別名。adjugateIt
の別名。adjugate
()余因子行列を得る。
余因子行列をセットする。
as3x3
()3x3部分以外を初期化した行列を得る。
asD
([order])asDegrees
の別名。asDegrees
([order])オイラー角回転を度数法の
list
として得る。asE
([order])asEulerRotation
の別名。asEulerRotation
([order])オイラー角回転を得る。
asQ
()asQuaternion
の別名。クォータニオンを得る。
asRM
()asRotationMatrix
の別名。回転のみの行列を得る。
asS
()asScaling
の別名。asSM
()asScalingMatrix
の別名。スケーリング成分を得る。
スケーリング成分(scale+shear)のみの行列を得る。
asSh
()asShearing
の別名。シアー成分を得る。
asT
()asTranslation
の別名。asTM
()asTranslationMatrix
の別名。トランスフォーメーションとして得る。
平行移動成分を得る。
平行移動のみの行列を得る。
3x3部分は転置、それ以外の部分は初期化した行列を得る。
asX
()asTransformation
の別名。axes
([transpose])3x3部分の行や列の軸ベクトルを3つ得る。
axis
(i[, transpose])3x3部分の行や列を軸ベクトルとして得る。
cofactor
(i, j)指定位置の余因子を得る。
col
(i)column
の別名。cols
()columns
の別名。column
(i)列ベクトルを得る。
columns
()列ベクトルを4つ全て得る。
det
()行列式を得る。
det2
()2x2部分の行列式を得る。
det2x2
()det2
の別名。det3
()3x3部分の行列式を得る。
det3x3
()det3
の別名。det4
()det
の別名。det4x4
()det
の別名。det
の別名。det2
の別名。det3
の別名。div
(m[, pre])マトリックス要素同士を除算する。
getElem
(row, col)指定位置の要素を得る。
hasNonUniformScaling
([tol])非一様スケーリングが含まれているかどうか。
3x3部分を正規直交化した行列を得る。
3x3部分を正規直交化した行列をセットする。
idiv
(m[, pre])各要素同士を除算し自身を更新する。
imul
(m)マトリックス要素同士を乗算してセットする。
init3x3
()3x3 部分を初期化する。
initT
()initTranslation
の別名。4行目の平行移動成分をクリアする。
inverse
()逆行列を得る。
invertIt
()逆行列をセットする。
isEquivalent
(m[, tol])ほぼ同値かどうか。
isIdentity
([tol])ほぼ単位行列かどうか。
特異行列かどうか。
makeInvS
(v[, pre])makeInverseScaling
の別名。makeInvSh
(v)makeInverseShearing
の別名。makeInvT
(v)makeInverseScaling
(v[, pre])スケーリングの逆行列を作成する。
シアーの逆行列を作成する。
平行移動の逆行列を作成する。
makeR
(v[, order])makeRotation
の別名。makeRotation
(v[, order])オイラー角回転から回転行列を作成する。
makeS
(v)makeScaling
の別名。makeScaling
(v)スケーリング行列を作成する。
makeSh
(v)makeShearing
の別名。makeShearing
(v)シアー行列を作成する。
makeT
(v)makeTranslation
の別名。平行移動行列を作成する。
mirror
([mirrorAxis, negAxis, t])指定軸方向でミラーしたマトリックスを得る。
mirrorIt
([mirrorAxis, negAxis, t])指定軸方向でミラーしたマトリックスをセットする。
mul
(m)マトリックス要素同士を乗算する。
3x3部分を正規直交化した行列を得る。
3x3部分を正規直交化した行列をセットする。
row
(i)行ベクトルを得る。
rows
()行ベクトルを4つ全て得る。
set
(v)他の値をセットする。
setAxes
(vx, vy, vz[, vt, transpose])3x3部分の行や列と4行目の平行移動ベクトルをセットする。
setAxis
(i, v[, transpose])3x3部分の行や列のベクトルをセットする。
setColumn
(i, v)列ベクトルをセットする。
setColumns
(v0, v1, v2, v3)列ベクトルを4つ全てセットする。
setElem
(row, col, val)指定位置の要素をセットする。
setRow
(i, v)行ベクトルをセットする。
setRows
(v0, v1, v2, v3)行ベクトルを4つ全てセットする。
setT
(v)setTranslation
の別名。単位行列をセットする。
平行移動値をセットする。
subT
(v)subTranslation
の別名。平行移動値を減算する。
転置行列を得る。
転置行列をセットする。
Attributes:
- Identity = ImmutableMatrix(((1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1)))¶
- Tolerance = 1e-10¶
- Zero = ImmutableMatrix(((0, 0, 0, 0), (0, 0, 0, 0), (0, 0, 0, 0), (0, 0, 0, 0)))¶
Methods Details:
- addT(v)¶
addTranslation
の別名。
- adjointIt()¶
adjugateIt
の別名。
- asDegrees(order=0)¶
オイラー角回転を度数法の
list
として得る。注釈
単位を弧度法で得たい場合は
asEulerRotation
を使用すると良い。
- asE(order=0)¶
asEulerRotation
の別名。
- asEulerRotation(order=0)¶
オイラー角回転を得る。
- パラメータ:
order (int) -- 得たい回転オーダー。
- 戻り値の型:
注釈
EulerRotation
の単位は弧度法なので、 度数法で得たい場合はasDegrees
を使用すると良い。
- asQ()¶
asQuaternion
の別名。
- asQuaternion()¶
クォータニオンを得る。
- 戻り値の型:
- asRM()¶
asRotationMatrix
の別名。
- asSM()¶
asScalingMatrix
の別名。
- asSh()¶
asShearing
の別名。
- asT()¶
asTranslation
の別名。
- asTM()¶
asTranslationMatrix
の別名。
- asTransformation()¶
トランスフォーメーションとして得る。
- 戻り値の型:
- asX()¶
asTransformation
の別名。
- div(m, pre=1e-13)¶
マトリックス要素同士を除算する。
ゼロ除算を避ける為、分母が
avoidZeroDiv
でフィルタされてから実行される。
- getElem(row, col)¶
指定位置の要素を得る。
- idiv(m, pre=1e-13)¶
各要素同士を除算し自身を更新する。
ゼロ除算を避ける為、分母が
avoidZeroDiv
でフィルタされてから実行される。- パラメータ:
v (iterable) -- 要素数16個以上のシーケンス。
pre (float) -- ゼロ除算を避ける為の許容誤差。
- init3x3()¶
3x3 部分を初期化する。
4x4 全て初期化する場合は
setToIdentity
が利用できる。平行移動成分のみの行列を新規に得たい場合は
asTranslationMatrix
が利用できる。- 戻り値の型:
Matrix
(self)
- initT()¶
initTranslation
の別名。
- isEquivalent(m, tol=1e-10)¶
ほぼ同値かどうか。
- classmethod makeInvS(v, pre=1e-13)¶
makeInverseScaling
の別名。
- classmethod makeInvSh(v)¶
makeInverseShearing
の別名。
- classmethod makeInvT(v)¶
- classmethod makeInverseScaling(v, pre=1e-13)¶
スケーリングの逆行列を作成する。
- classmethod makeInverseShearing(v)¶
シアーの逆行列を作成する。
- classmethod makeInverseTranslation(v)¶
平行移動の逆行列を作成する。
- classmethod makeR(v, order=0)¶
makeRotation
の別名。
- classmethod makeRotation(v, order=0)¶
オイラー角回転から回転行列を作成する。
- classmethod makeS(v)¶
makeScaling
の別名。
- classmethod makeSh(v)¶
makeShearing
の別名。
- classmethod makeT(v)¶
makeTranslation
の別名。
- mirror(mirrorAxis=0, negAxis=True, t=True)¶
指定軸方向でミラーしたマトリックスを得る。
- パラメータ:
- 戻り値の型:
- setAxes(vx, vy, vz, vt=ImmutableVector(0.000000, 0.000000, 0.000000), transpose=False)¶
3x3部分の行や列と4行目の平行移動ベクトルをセットする。
- setAxis(i, v, transpose=False)¶
3x3部分の行や列のベクトルをセットする。
- setColumns(v0, v1, v2, v3)¶
列ベクトルを4つ全てセットする。
- setElem(row, col, val)¶
指定位置の要素をセットする。
- setRows(v0, v1, v2, v3)¶
行ベクトルを4つ全てセットする。
- setT(v)¶
setTranslation
の別名。
- setToIdentity()¶
単位行列をセットする。
- 戻り値の型:
self
- subT(v)¶
subTranslation
の別名。