SSG22


【機能】

    平面上の多角形の面積を求める(2D)


【使用形式】

    CALL  SSG22(N,XTB,YTB,IDX,IDY,IFLG,S,ICCW,IR)


【引数説明】

    [INPUT]
        N        : 多角形の頂点数(N≧2)                  
        XTB(*)   : 頂点のX座標配列((N-1)×IDX+1ワード必要)
        YTB(*)   : 頂点のY座標配列((N-1)×IDY+1ワード必要)
        IDX      : XTB内のX座標の参照間隔(ワード単位)   
        IDY      : YTB内のY座標の参照間隔(ワード単位)   
        IFLG     : 多角形の種別                            
                     0 ; 閉多角形                          
                     1 ; 開多角形                          

    [OUTPUT]                      
        S        : 多角形の面積(ICCW=1の場合、負値となる)
        ICCW     : 多角形の頂点列の回転方向                
                     0 ; 反時計回り                        
                     1 ; 時計回り                          
        IR       : リターンフラグ                          
                     0 ; 正常                              
                     1 ; 入力エラー                        

【機能説明】

    ・XY平面上の多角形の面積と、その多角形の頂点列の回転方向
      を出力する。
    ・但し、IFLG=0(開多角形)の場合、「面積」とは、X軸と多角
      形とで囲まれる面積であり、「回転方向」とは原点に対する多
      角形の回転方向となるので注意すること。


【使用例】

    ・このルーチンは、コール側の頂点列の存在する配列の形式によ
      って以下のように、IDX、IDYを設定する。
                                        X      
      (1) XTB(N)    |X1|X2|X3|・・・・・・・・・|n-1|Xn|
                    +--+--+--+----------------+
                                        Y      
          YTB(N)    |Y1|Y2|Y3|・・・・・・・・・|n-1|Yn|
                    +--+--+--+----------------+
         →CALL SSG22(N, XTB, YTB, 1, 1, 0, S, ICCW, IR)
                                             X   Y         
      (2) PTB(N*2)  |X1|X2|X3|Y2|Y2|Y3|・・・・・|n-1|n-1|Xn|Yn|
                    +--+--+--+--+--+--+----------------+--+
         →CALL SSG22(N, PTB(1), PTB(2), 2, 2, 0, S, ICCW, IR)
                    |  |  |  |         |X  |  |            
      (2) PTB(N*3)  |X1|X2|X3|・・・・・・・・・|n-1|Xn|           
                    |  |  |  |         |Y  |  |
                    |Y1|Y2|Y3|・・・・・・・・・|n-1|Yn|
                    |  |  |  |         |Z  |  |
                    |Z1|Z2|Z3|・・・・・・・・・|n-1|Zn|
                    +--+--+--+----------------+           
         →CALL SSG22(N, PTB(1,1), PTB(2,1), 3, 3, 0, S, ICCW,
                      IR)
                        X                                  
      (2) XTB(N)    |Xn|n-1|・・・・・・・・・・|X3|X2|X1|          
                    +--+--------------+--+--+--+          
                        Y                                  
      (2) YTB(N)    |Yn|n-1|・・・・・・・・・・|Y3|Y2|Y1|          
                    +--+--------------+--+--+--+          
         →CALL SSG22(N, XTB(N), YTB(N), -1, -1, 0, S, ICCW,IR)