4)定速近似の曲線

 円柱でつなぐ二点間の弧長が一定となる曲線です。
//**********************************************************************************
   入力
    Lr:線の半径
    V1:媒介変数の範囲 <始点,終点,刻み幅,弧長>
    Fn:式の登録番号
//**********************************************************************************
#macro Arclen_line2(Lr,V1,Fn)
 #local P1=Line_function(V1.x,Fn); #local Ps=P1;
 #local Tp=V1.x; #while(Tp < V1.y)
  #local L=0; #while(L < V1.t)
  #local Pe=Line_function(Tp+V1.z,Fn);
  #local L=L+vlength(Pe-Ps);
  #if(L>V1.t) #local L=V1.t; #else #local Ps=Pe; #local Tp=Tp+V1.z; #end
  #end
  #local P2=Line_function(Tp,Fn);
  cylinder { P1, P2, Lr } #if(Tp < V1.y-V1.z) sphere { P2, Lr } #end
  #local P1=P2;
 #end
#end
//**********************************************************************************