Matrix4x4のまとめ
Unity
<Matrix4x4のまとめ>
Matrix4x4関連のプロパティ、メソッドについて
<Matrix4x4定数>
特定のMatrix4x4です。
・Matrix4x4.zero ・・・零行列:要素が全て0
・Matrix4x4.identity ・・・単位行列:対角要素が全て1で、他の要素が全て0
<Matrix4x4変数>
Matrix4x4から(読み取り専用で)プロパティを取得します。
別の変数に代入できます。
(floatで返します)
・Matrix4x4.determinan
行列式の値を取得します。
(boolで返します)
・Matrix4x4.isIdentity
Matrix4x4.identityかどうかを返します。
Matrix4x4 == Matrix4x4.identity: Matrix4x4.isIdentity = True
Matrix4x4 != Matrix4x4.identity: Matrix4x4.isIdentity = False
(Matrix4x4で返します)
・Matrix4x4.inverse
逆行列を作成します。
直交行列(行列式1の正方行列)では、逆行列は転置行列に一致します。
(Matrix4x4で返します)
・Matrix4x4.transpose
転置行列を作成します。
<Matrix4x4メソッド>
Matrix4x4を引数にとり、自身に戻り値を返すメソッドです。
自身が変更されます。
(自身にMatrix4x4で返します)
・Matrix4x4.SetRow(n, V)
行列Matrix4x4のn(int)行目に、V(Vector4)を設定します。
n=0,1,2,3です。
(自身にMatrix4x4で返します)
・Matrix4x4.SetColumn(n, V)
行列Matrix4x4のn(int)列目に、V(Vector4)を設定します。
n=0,1,2,3です。
(自身にMatrix4x4で返します)
・Matrix4x4.SetTRS(d, q, s) = new Matrix4x4.TRS(d, q, s)
アフィン変換行列を設定します。
d(Vector3)で移動、q(Quaternion)で回転、s(Vector3)で拡大縮小を行います。
<Matrix4x4関数>
①Matrix4x4を引数にとる関数で、戻り値を返します。
別の変数に代入できます。
(Stringで返します)
・Matrix4x4.ToString("フォーマット") =
m00 m01 m02 m03
m10 m11 m12 m13
m20 m21 m22 m23
m30 m31 m32 m33
行列Matrix4x4の全要素を、フォーマットの書式で表示します。
4行×4列=計16個の数値が出力されます。
「m[i, j]:i行目のj列目の要素」になります。
行列積では、行列の行ベクトルと、列ベクトルの内積が、
(Vector4で返します)
・Matrix4x4.GetRow(n)
行列Matrix4x4のn(int)行目を取得します。
n=0,1,2,3です。
(Vector4で返します)
・Matrix4x4.GetColumn(n)
行列Matrix4x4のn(int)列目を取得します。
n=0,1,2,3です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
②各種パラメータを引数にとる関数で、Matrix4x4で戻り値を返します。
別の変数に代入できます。
(Matrix4x4で返します)
・Matrix4x4.Scale(s)
スケーリング行列を作成します。
s(Vector3)で拡大縮小を行います。
(Matrix4x4で返します)
・Matrix4x4.TRS(d, q, s)
アフィン変換行列を作成します。
d(Vector3)で移動、q(Quaternion)で回転、s(Vector3)で拡大縮小を行います。
(Matrix4x4で返します)
・Matrix4x4.Ortho(l, r, d, u, zN, zF)
平行投影行列を作成します。
l(float),r(float),d(float),u(float),zN(float),zF(float)で設定します。
ビューエリアは、水平方向lからrまで、垂直方向dからuまでとなり、
クリッピングプレーンは、zNからzFまでとなります。
(Matrix4x4で返します)
・Matrix4x4.Perspective(fov, aspect, zN, zF)
透視投影行列を作成します。
fov(float),aspect(float),zN(float),zF(float)で設定します。
ビューエリアは、縦方向の視野角fov(度)とアスペクト比aspect(横/縦)で、
クリッピングプレーンは、zNからzFまでとなります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
③ベクトルVector3(vx, vy, vz)を引数にとる関数で、Vector3で戻り値を返します。
別の変数に代入できます。
(Vector3で返します)
・Matrix4x4.MultiplyPoint(Vector3)
位置ベクトルを射影変換します。
(せん断を含む)アフィン変換+射影を行う、4×4の汎用行列です。
平行移動+回転+拡大縮小(+鏡像)+せん断+射影を適用します。
正投影(平行投影)はアフィン変換に含まれますが、透視投影(中心投影)は射影変換に含まれます。
アフィン変換=平行投影変換
射影変換=中心投影変換
(Vector3で返します)
・Matrix4x4.MultiplyPoint3x4(Vector3)
位置ベクトルを(せん断を含まない)アフィン変換します。
3次元のアフィン変換行列は実質3×4行列です。
平行移動+回転+拡大縮小(+鏡像)を適用します。
(Vector3で返します)
・Matrix4x4.MultiplyVector(Vector3)
方向ベクトルを回転変換します。
3次元の回転行列は実質3×3行列です。
回転のみを適用します。
Matrix4x4関連のプロパティ、メソッドについて
<Matrix4x4定数>
特定のMatrix4x4です。
・Matrix4x4.zero ・・・零行列:要素が全て0
・Matrix4x4.identity ・・・単位行列:対角要素が全て1で、他の要素が全て0
<Matrix4x4変数>
Matrix4x4から(読み取り専用で)プロパティを取得します。
別の変数に代入できます。
(floatで返します)
・Matrix4x4.determinan
行列式の値を取得します。
(boolで返します)
・Matrix4x4.isIdentity
Matrix4x4.identityかどうかを返します。
Matrix4x4 == Matrix4x4.identity: Matrix4x4.isIdentity = True
Matrix4x4 != Matrix4x4.identity: Matrix4x4.isIdentity = False
(Matrix4x4で返します)
・Matrix4x4.inverse
逆行列を作成します。
直交行列(行列式1の正方行列)では、逆行列は転置行列に一致します。
(Matrix4x4で返します)
・Matrix4x4.transpose
転置行列を作成します。
<Matrix4x4メソッド>
Matrix4x4を引数にとり、自身に戻り値を返すメソッドです。
自身が変更されます。
(自身にMatrix4x4で返します)
・Matrix4x4.SetRow(n, V)
行列Matrix4x4のn(int)行目に、V(Vector4)を設定します。
n=0,1,2,3です。
(自身にMatrix4x4で返します)
・Matrix4x4.SetColumn(n, V)
行列Matrix4x4のn(int)列目に、V(Vector4)を設定します。
n=0,1,2,3です。
(自身にMatrix4x4で返します)
・Matrix4x4.SetTRS(d, q, s) = new Matrix4x4.TRS(d, q, s)
アフィン変換行列を設定します。
d(Vector3)で移動、q(Quaternion)で回転、s(Vector3)で拡大縮小を行います。
<Matrix4x4関数>
①Matrix4x4を引数にとる関数で、戻り値を返します。
別の変数に代入できます。
(Stringで返します)
・Matrix4x4.ToString("フォーマット") =
m00 m01 m02 m03
m10 m11 m12 m13
m20 m21 m22 m23
m30 m31 m32 m33
行列Matrix4x4の全要素を、フォーマットの書式で表示します。
4行×4列=計16個の数値が出力されます。
「m[i, j]:i行目のj列目の要素」になります。
行列積では、行列の行ベクトルと、列ベクトルの内積が、
(Vector4で返します)
・Matrix4x4.GetRow(n)
行列Matrix4x4のn(int)行目を取得します。
n=0,1,2,3です。
(Vector4で返します)
・Matrix4x4.GetColumn(n)
行列Matrix4x4のn(int)列目を取得します。
n=0,1,2,3です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
②各種パラメータを引数にとる関数で、Matrix4x4で戻り値を返します。
別の変数に代入できます。
(Matrix4x4で返します)
・Matrix4x4.Scale(s)
スケーリング行列を作成します。
s(Vector3)で拡大縮小を行います。
(Matrix4x4で返します)
・Matrix4x4.TRS(d, q, s)
アフィン変換行列を作成します。
d(Vector3)で移動、q(Quaternion)で回転、s(Vector3)で拡大縮小を行います。
(Matrix4x4で返します)
・Matrix4x4.Ortho(l, r, d, u, zN, zF)
平行投影行列を作成します。
l(float),r(float),d(float),u(float),zN(float),zF(float)で設定します。
ビューエリアは、水平方向lからrまで、垂直方向dからuまでとなり、
クリッピングプレーンは、zNからzFまでとなります。
(Matrix4x4で返します)
・Matrix4x4.Perspective(fov, aspect, zN, zF)
透視投影行列を作成します。
fov(float),aspect(float),zN(float),zF(float)で設定します。
ビューエリアは、縦方向の視野角fov(度)とアスペクト比aspect(横/縦)で、
クリッピングプレーンは、zNからzFまでとなります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
③ベクトルVector3(vx, vy, vz)を引数にとる関数で、Vector3で戻り値を返します。
別の変数に代入できます。
(Vector3で返します)
・Matrix4x4.MultiplyPoint(Vector3)
位置ベクトルを射影変換します。
(せん断を含む)アフィン変換+射影を行う、4×4の汎用行列です。
平行移動+回転+拡大縮小(+鏡像)+せん断+射影を適用します。
正投影(平行投影)はアフィン変換に含まれますが、透視投影(中心投影)は射影変換に含まれます。
アフィン変換=平行投影変換
射影変換=中心投影変換
(Vector3で返します)
・Matrix4x4.MultiplyPoint3x4(Vector3)
位置ベクトルを(せん断を含まない)アフィン変換します。
3次元のアフィン変換行列は実質3×4行列です。
平行移動+回転+拡大縮小(+鏡像)を適用します。
(Vector3で返します)
・Matrix4x4.MultiplyVector(Vector3)
方向ベクトルを回転変換します。
3次元の回転行列は実質3×3行列です。
回転のみを適用します。
スポンサーサイト
コメント