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)