sub_set02へ戻る

名称 ・・・・・・・

アフィン変換用マトリックス(平行移動)

ルーチン名 ・・・・・・・

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)

sub_set02へ戻る