<< 前へ        次へ >>

ID : 257

NormTrn

機能

同次変換型データの正規化計算の結果を返します。

構文

 NormTrn(同次変換型データ)

指定項目

同次変換型データ
同次変換型データを指定します。

戻り値

正規化計算した結果を同次変換型データで返します。

解説

同次変換型データを正規化します。

アプローチベクトルを基準としてオリエントベクトルを直交化し、アプローチベクトルおよびオリエントベクトルを単位ベクトル化します。

指定した同次変換型データが正規化できないデータだった場合、エラーレベル1のエラーです。"On Error"ステートメントを用いてエラー処理ルーチンを作成できます。"On Error"参照

関連項目

TNorm

注意事項

-

用例

'!TITLE "同次変換型データの正規化計算"
' 正規化計算結果が正しい場合1を、正しくない場合-1をメッセージ出力ウィンドウに表示
Sub Sample_Normtrn

  Dim aaa As Trans
  Dim bbb As Trans
  Dim ccc As Vector
  Dim ddd As Vector
  Dim eee( 11 ) As Integer

  aaa = T( 1, 0, 1, 0.5, 0, 0, 0, 0, 2 )

  ' aaaの正規化計算をbbbへ代入
  bbb = NormTrn( aaa )

  ' bbbのオリエントベクトルをcccへ代入
  ccc = OVec( bbb )

  ' bbbのアプローチベクトルをdddへ代入
  ddd = AVec( bbb )

  If PosX( bbb ) = 0 Then eee( 0 ) = 1 Else eee( 0 ) = 0
  PrintDbg " eee(0)=" + Str( eee( 0 ) ) + ",  " + Str( PosX( bbb ) )
  If PosY( bbb ) = 0 Then eee( 1 ) = 1 Else eee( 1 ) = 0
  PrintDbg " eee(1)=" + Str( eee( 1 ) ) + ",  " + Str( PosY( bbb ) )
  If PosZ( bbb ) = 0 Then eee( 2 ) = 1 Else eee( 2 ) = 0
  PrintDbg " eee(2)=" + Str( eee( 2 ) ) + ",  " + Str( PosZ( bbb ) )
  If PosX( ccc ) = 1 Then eee( 3 ) = 1 Else eee( 3 ) = 0
  PrintDbg " eee(3)=" + Str( eee( 3 ) ) + ",  " + Str( PosX( ccc ) )
  If PosY( ccc ) = 0 Then eee( 4 ) = 1 Else eee( 4 ) = 0
  PrintDbg " eee(4)=" + Str( eee( 4 ) ) + ",  " + Str( PosY( ccc ) )
  If PosZ( ccc ) = 0 Then eee( 5 ) = 1 Else eee( 5 ) = 0
  PrintDbg " eee(5)=" + Str( eee( 5 ) ) + ",  " + Str( PosZ( ccc ) )
  If PosX( ddd ) = 0 Then eee( 6 ) = 1 Else eee( 6 ) = 0
  PrintDbg " eee(6)=" + Str( eee( 6 ) ) + ",  " + Str( PosX( ddd ) )
  If PosY( ddd ) = 0 Then eee( 7 ) = 1 Else eee( 7 ) = 0
  PrintDbg " eee(7)=" + Str( eee( 7 ) ) + ",  " + Str( PosY( ddd ) )
  If PosZ( ddd ) = 1 Then eee( 8 ) = 1 Else eee( 8 ) = 0
  PrintDbg " eee(8)=" + Str( eee( 8 ) ) + ",  " + Str( PosZ( ddd ) )
  If Fig( bbb ) = -1 Then eee( 9 ) = 1 Else eee( 9 ) = 0
  PrintDbg " eee(9)=" + Str( eee( 9 ) ) + ",  " + Str( Fig( bbb ) )

  eee( 10 ) = eee( 0 ) + eee( 1 ) + eee( 2 ) + eee( 3 ) + eee( 4 ) + eee( 5 ) + eee( 6 ) + eee( 7 ) + eee( 8 ) + eee( 9 )

  ' 正規化が正しく行えたか判定
  If eee( 10 ) = 10 Then eee( 11 ) = 1 Else eee( 11 ) = -1

  ' メッセージ出力ウィンドウにeee(11)の値を表示
  PrintDbg " eee(11)=" + Str( eee( 11 ) )

End Sub

ID : 257

<< 前へ        次へ >>