稜線の長さを求める 関数は以下のようになる。
/* 稜線の長さ */
void WH_Fem__Simplex2D__l
(double whV_x0[2],
double whV_x1[2],
double whV_x2[2],
int Iedge,
double *OUT__l)
/*
入力引数:
whV_x0, whV_x1, whV_x2 はベクトルで、各頂点の位置
Iedge は0から2までの整数で、稜線ID
出力引数:
OUT__l はスカラーで、稜線の長さ
*/
{
double x0 = whV_x0[0];
double x1 = whV_x1[0];
double x2 = whV_x2[0];
double y0 = whV_x0[1];
double y1 = whV_x1[1];
double y2 = whV_x2[1];
switch (Iedge) {
case 0:
*OUT__l = sqrt ((x1 - x2) * (x1 - x2)
+ (y1 - y2) * (y1 - y2));
break;
case 1:
*OUT__l = sqrt ((x2 - x0) * (x2 - x0)
+ (y2 - y0) * (y2 - y0));
break;
case 2:
*OUT__l = sqrt ((x0 - x1) * (x0 - x1)
+ (y0 - y1) * (y0 - y1));
break;
default:
assert(0);
break;
}
}