二つの行列の乗算を行う
val = MMult(In1, In2)
MATRIX In1 : 乗算する左側の行列 MATRIX In2 : 乗算する右側の行列
(プラグイン / モジュール : DxLibW)
引数 In1 と In2 を乗算した結果の行列を戻り値として返す関数です。 行列と行列の乗算は複数の行列の効果を合成することができます。 ( 合成された行列は In1 → In2 の順で効果が現れます( 例:拡大行列と平行移動行列を乗算した場合、 その行列を使用して変換( VTransform )したベクトルは拡大行列→平行移動行列の順で変換( VTransform )した場合と同じ結果になります ) ) 戻り値行列 m[0][0] = In1.m[0][0] * In2.m[0][0] + In1.m[0][1] * In2.m[1][0] + In1.m[0][2] * In2.m[2][0] + In1.m[0][3] * In2.m[3][0] ; m[0][1] = In1.m[0][0] * In2.m[0][1] + In1.m[0][1] * In2.m[1][1] + In1.m[0][2] * In2.m[2][1] + In1.m[0][3] * In2.m[3][1] ; m[0][2] = In1.m[0][0] * In2.m[0][2] + In1.m[0][1] * In2.m[1][2] + In1.m[0][2] * In2.m[2][2] + In1.m[0][3] * In2.m[3][2] ; m[0][3] = In1.m[0][0] * In2.m[0][3] + In1.m[0][1] * In2.m[1][3] + In1.m[0][2] * In2.m[2][3] + In1.m[0][3] * In2.m[3][3] ; m[1][0] = In1.m[1][0] * In2.m[0][0] + In1.m[1][1] * In2.m[1][0] + In1.m[1][2] * In2.m[2][0] + In1.m[1][3] * In2.m[3][0] ; m[1][1] = In1.m[1][0] * In2.m[0][1] + In1.m[1][1] * In2.m[1][1] + In1.m[1][2] * In2.m[2][1] + In1.m[1][3] * In2.m[3][1] ; m[1][2] = In1.m[1][0] * In2.m[0][2] + In1.m[1][1] * In2.m[1][2] + In1.m[1][2] * In2.m[2][2] + In1.m[1][3] * In2.m[3][2] ; m[1][3] = In1.m[1][0] * In2.m[0][3] + In1.m[1][1] * In2.m[1][3] + In1.m[1][2] * In2.m[2][3] + In1.m[1][3] * In2.m[3][3] ; m[2][0] = In1.m[2][0] * In2.m[0][0] + In1.m[2][1] * In2.m[1][0] + In1.m[2][2] * In2.m[2][0] + In1.m[2][3] * In2.m[3][0] ; m[2][1] = In1.m[2][0] * In2.m[0][1] + In1.m[2][1] * In2.m[1][1] + In1.m[2][2] * In2.m[2][1] + In1.m[2][3] * In2.m[3][1] ; m[2][2] = In1.m[2][0] * In2.m[0][2] + In1.m[2][1] * In2.m[1][2] + In1.m[2][2] * In2.m[2][2] + In1.m[2][3] * In2.m[3][2] ; m[2][3] = In1.m[2][0] * In2.m[0][3] + In1.m[2][1] * In2.m[1][3] + In1.m[2][2] * In2.m[2][3] + In1.m[2][3] * In2.m[3][3] ; m[3][0] = In1.m[3][0] * In2.m[0][0] + In1.m[3][1] * In2.m[1][0] + In1.m[3][2] * In2.m[2][0] + In1.m[3][3] * In2.m[3][0] ; m[3][1] = In1.m[3][0] * In2.m[0][1] + In1.m[3][1] * In2.m[1][1] + In1.m[3][2] * In2.m[2][1] + In1.m[3][3] * In2.m[3][1] ; m[3][2] = In1.m[3][0] * In2.m[0][2] + In1.m[3][1] * In2.m[1][2] + In1.m[3][2] * In2.m[2][2] + In1.m[3][3] * In2.m[3][2] ; m[3][3] = In1.m[3][0] * In2.m[0][3] + In1.m[3][1] * In2.m[1][3] + In1.m[3][2] * In2.m[2][3] + In1.m[3][3] * In2.m[3][3] ; ※ この関数は #cfuncst (MATRIX) で宣言されています。 戻り値は構造体 MATRIX (64バイト) です。 代入するだけで自動的に構造体変数が作成されます: v = MMult(...) ; auto dim + copy 代入後はメンバにアクセスできます: mes v->m00 mes v->m01 mes v->m02 ...
| プラグイン / モジュール | DxLibW |
| バージョン | 3.24f |
| 作成日 | 2026/04/12 |
| 著作者 | DxLib: Takumi Yamada / HSP binding: IronHSP Project |
| URL | https://dxlib.xsrv.jp/ |
| 備考 | hspdxlib.as をインクルードして使用 |
| タイプ | DxLib ゲームライブラリ |
| グループ | DxLib 3D数学 |
| 対応環境 |
|
| hs ファイル | hsphelp\hspdxlib.hs |