2)曲面の法ベクトル

 曲面の座標とその位置の外向き法ベクトルを求めます。
//**********************************************************************************
   入力 U:第一変数の値 V:第二変数の値 Fn:式の登録番号
   出力 N:第一変数と第二変数に対する曲面の座標値と外向き法ベクトル
//**********************************************************************************
#macro Nvector(U,V,Fn)
 #local N=array[2]
 #local P=Surface_function(U,V,Fn);
 #local H=1e-4;
 #local Fu=Surface_function( U+H/2, V, Fn)-Surface_function( U-H/2, V, Fn);
 #local Fv=Surface_function( U, V+H/2, Fn)-Surface_function( U, V-H/2, Fn);
 #local Nv=vcross(Fu/H,Fv/H);
 #if(vdot(-P,Nv)>=0) #local Sg=1; #else #local Sg=-1; #end
 #local Vn=-Sg*Nv; #if(vlength(Vn)=0) #local Vn=<0,0,1>; #end
 #local N[0]=P; #local N[1]=Vn;
 N
#end
//**********************************************************************************

 曲面の座標値と外向き法ベクトルを配列 N に格納して返します。