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