SSH02


【機能】

    空間の閉多角形の法線ベクトルと面積を求める(3D)


【使用形式】

    CALL  SSH02(N,XTB,YTB,ZTB,IU,VZ,S,IR)


【引数説明】

    [INPUT]
        N       : 閉多角形の頂点数                          
        XTB(*)  : 頂点のX座標の配列((N-1)×IU+1ワード必要)
        YTB(*)  : 頂点のY座標の配列((N-1)×IU+1ワード必要)
        ZTB(*)  : 頂点のZ座標の配列((N-1)×IU+1ワード必要)
        IU      : XTB, YTB, ZTB内の参照間隔(ワード必要)   

    [OUTPUT]                      
        VZ(3)  : 単位法線ベクトル           
        S      : 面積                       
        IR     : リターンフラグ             
                 0 ; 正常終了              
                  1 ; 入力エラー            
                  2 ; 法線ベクトルが定義不可

【機能説明】

    ・空間の閉多角形の単位法線ベクトルと、その閉多角形の面積を
      求める。求められた法線ベクトルの向きは、この閉多角形の頂
      点列が反時計回りの順序で入力されていると見える方向に対し
      て、表向き法線ベクトルとなるように決定される。

【備考】

    ・入力点列は、すべて同一平面上の点であることを前提としてい
      るが、同一平面上の点であるかどうかのチェックは行わない。
    ・空間の閉多角形頂点座標(xi, yi, zi)(i=1, 2, ・・・, n)が、こ
      の閉多角形を表側から見たときに、反時計回りの順序で記述さ
      れているとき、表向き法線ベクトルNは次式で与えられる。
          N=[Nx Ny Nz]
              n
          Nx=Σ(yi-yj)(zi+zj)
             i=1
              n
          Ny=Σ(zi-zj)(xi+xj)
             i=1
              n
          Nz=Σ(xi-xj)(yi+yj)
             i=1
        ただし、i=nのときj=i+1
                i=nのときj=1
        また、この閉多角形の面積Sは
          S=1/2SQRT(Nx**2+Ny**2+Nz**2)
        したがって、単位法線ベクトルn=[nx ny nz]は
          n=N/SQRT(Nx**2+Ny**2+Nz**2)=1/2S N