名称 | ・・・・・・・ |
アフィン変換用マトリックス(平行移動) |
|||
ルーチン名 | ・・・・・・・ |
MoveMat |
|||
スクリプトNo | ・・・・・・・ | sub_set02- 006 | |||
file名 | ・・・・・・・ | ScriptSet02.lzh sub_set02のページからセットごとダウンロードしてください。 |
|||
概略 | ・・・・・・・ |
位置ベクトル方向に平行移動する時の変換マトリックスを戻す |
|||
|
|||||
使用前提 | ・・・・・・・ |
戻り値を受け取る通常のバリアント変数(配列では無く)を宣言して用意しておく。 |
|||
依存関係 | ・・・・・・・ |
iniMat |
:マトリックス内の要素をすべて0に初期化する(sub_set02-001) |
||
引数説明 | ・・・・・・・ |
Dt |
(in)x、y、z方向それぞれの移動距離 [vec(2)形式] |
||
戻り値説明 | ・・・・・・・ |
4行4列の平行移動変換マトリックス [mat(3,3)]形式 |
|||
変数説明 | ・・・・・・・ |
mat(3,3) |
マトリックスを保持する変数 |
||
注意点 | ・・・・・・・ |
引数のDtはベクトル指定[vec(2)形式]なので注意 |
|||
スクリプト | |||||
'---アフィン変換用マトリックス(平行移動) Function MoveMat(Dt) 'Dt方向に平行移動する時の変換マトリックスを取得する '戻値--4行4列の平行移動変換マトリックス[mat(3,3)]形式 '引数-- ' Dt :(in)x,y,z方向それぞれの移動距離[配列Dt(2)]形式 Dim mat(3,3) ':マトリックスを保持する変数 call iniMat(mat) mat(0,0)=1 mat(1,1)=1 mat(2,2)=1 mat(3,0)=Dt(0) mat(3,1)=Dt(1) mat(3,2)=Dt(2) mat(3,3)=1 MoveMat=mat End Function |
|||||
使用例 | |||||
'平行移動テスト '線形状が入っているパートを選択して実行してください dim mat0 dim Dt(2) mat0=GetTransMat() Dt(0)=100: Dt(1)=150: Dt(2)=50 mat0=transMat(mat0,MoveMat(Dt)) ApplyTransMat(mat0) |