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