線の太さを変化させることができるブロブで描く曲線です。
//***************************************************************
入力
Lr;基本となる線の半径
V1:媒介変数の範囲<始点,終点,刻み幅>
V2:太さの変化<始点の比率,終点の比率>
Fn:式の登録番号
//***************************************************************
#macro Blob_line(Lr,V1,V2,Fn)
#local Ts=V1.x; #local Te=V1.y; #local Ta=V1.z;
#if(V2.x>0) #local Rs=V2.x; #else #local Rs=1e-10; #end
#if(V2.y>0) #local Re=V2.y; #else #local Re=1e-9; #end
#local Ra=(Re-Rs)*Ta/(Te-Ts);
#local Th=1; #local Sg=1;
blob { threshold Th
#local P1=Line_function(Ts,Fn); sphere { P1, Lr Sg*Rs }
#while( Ts < Te)
#local P2=Line_function(Ts+Ta,Fn);
cylinder { P1, P2, Lr Sg*Rs } sphere { P2, Lr Sg*Rs }
#local P1=P2; #local Rs=Rs+Ra;
#local Ts=Ts+Ta; #end }
#end
//***************************************************************
例) object { Blob_line(Lr,<-pi,pi,pi/16>,<40,1>,2)
scale 45 texture { T_hair } translate -90*x }