SIMatrix4.Mul

説明

行列 m1 に行列 m2 を右から掛け、結果をこの行列に格納します(this = m1 . m2)。

C#構文

SIMatrix4.Mul( SIMatrix4 in_pMatrix1, SIMatrix4 in_pMatrix2 );

スクリプト構文

SIMatrix4.Mul( m1, m2 );

パラメータ

パラメータ タイプ 説明
m1 SIMatrix4 行列オペランド
m2 SIMatrix4 行列オペランド

1. JScript の例

/*

	Example of Matrix multiplication

*/

var m1 = XSIMath.CreateMatrix4( 1.0,  2.0, 3.0, 4.0, 

	                               5.0,  6.0, 7.0, 8.0, 

		                           9.0, 10.0,11.0,12.0, 

	 	                           13.0,14.0,15.0,16.0 );

var m2 = XSIMath.CreateMatrix4( 1.0,  0.0, 0.0, 0.0, 

	                               0.0,  0.0, 1.0, 0.0, 

		                           0.0,  1.0, 0.0, 0.0, 

	 	                           0.0,  0.0, 0.0, 1.0 ) ;

var m3 = XSIMath.CreateMatrix4();

var m4 = XSIMath.CreateMatrix4();

// The m2 matrix will swap 2 and 3rd rows

// m3 is the composition of m1 and m2

m3.Mul( m2, m1 ) ;

Application.LogMessage( "Multipled matrix" ) ;

PrintMatrix( m3 ) ;

// m2 is invertible, so we can restore 

// the original matrix 

// (In fact this is not necessary

// because inversion of m2 = m2)

m2.InvertInPlace()  ;

PrintMatrix( m2 ) ;

m4.Mul( m2, m3 ) ;

Application.LogMessage( "Restored matrix" ) ;

PrintMatrix( m4 ) ;

function PrintMatrix( oMatrix4 )

{

	for ( var row = 0 ; row < 4 ; row++ )

	{	

		strLine = "" ;

		for( var col = 0 ; col < 4 ; col++ )

		{

			strLine += oMatrix4.Value( row, col ) + "\t\t";

		}

		Application.LogMessage( strLine ) ;

	}

}

//INFO : Multipled matrix

//INFO : 1		2		3		4		

//INFO : 9		10		11		12		

//INFO : 5		6		7		8		

//INFO : 13		14		15		16		

//INFO : Restored matrix

//INFO : 1		2		3		4		

//INFO : 5		6		7		8		

//INFO : 9		10		11		12		

//INFO : 13		14		15		16

2. VBScript の例

'

' This example demonstrates how to multiply two

' 4x4 matrices and store the result in a third

'

dim m1 : set m1 = XSIMath.CreateMatrix4(_

	1.0, 0.0, 0.0, 0.0, _

	0.0, 2.0, 0.0, 0.0, _

	0.0, 0.0, 3.0, 0.0, _

	0.0, 0.0, 0.0, 1.0) 

dim m2 : set m2 = XSIMath.CreateMatrix4(_

	4.0, 0.0, 0.0, 0.0, _

	0.0, 3.0, 0.0, 0.0, _

	0.0, 0.0, 2.0, 0.0, _

	0.0, 0.0, 0.0, 1.0)

dim m3 : set m3 = XSIMath.CreateMatrix4

m3.Mul m1, m2

関連項目

SIMatrix4.MulInPlace SIVector3 SIMatrix3 SIMatrix4 SIRotation SITransformation SIQuaternion