3)物体の配置

 物体を曲面の外向き法ベクトル方向に配置します。
//**********************************************************************************
   入力 V1:第一変数の範囲 <始点、終点、刻み幅>
       V2:第二変数の範囲 <始点、終点、刻み幅>
       Fn:式の登録番号
//**********************************************************************************
#macro Normal_surface(V1,V2,Fn)
#ifndef (Set_obj) #local Set_obj = cylinder { 0, x, 1/30 } #end
 #local V=V2.x; #while(V < V2.y)
  #local U=V1.x; #while(U < V1.y)
  #local N=Nvector(U, V, Fn);
  #local Pv=N[0]; #local Vn=N[1];
  #local Cp=Spherical_cnv_z(Vn);
  object { Set_obj rotate -degrees(Cp.z)*y rotate degrees(Cp.y)*z translate Pv }
  #local U=U+V1.z; #end
 #local V=V+V2.z; #end
#end
//**********************************************************************************

 例) 円柱を楕円放物面の外向き法ベクトル方向に配置します。

    #local Fn=22;
    #local Sc=18; #local Rt=<22,0,-15>; #local Tr=-50*z;
    #local Tf=transform { scale Sc rotate Rt translate Tr }
    union { Normal_surface(<-pi+1.5/Sc,pi,2/Sc>,<-pi/2,pi/2,2/Sc>,Fn)
                        texture { Ts } transform Tf }