+%
+% Yet Another Bulb Routine with smooth inside curve.
+%
+% alpha = start direction.
+% beta = which side to turn to.
+% flare = diameter of the bulb
+% line = diameter of line attachment
+% direction = is ink on left or right side (1 or -1)
+%
+
+%
+% move_away_to = amount left (for 2)
+% turn_to = amount down (for 2 )
+%
+def number_flare_path(expr pos,alpha,beta,line,flare,
+
+ move_away_to,
+ turn_to, taille, taille_ratio,
+ direction) =
+ begingroup;
+ clearxy;
+
+% z5 = z2 + 0.43* flare *dir (alpha - 1.5 beta);
+
+ z4 = (0.75 - taille) [z2r, z2l] + whatever* dir (alpha - beta) ;
+ z4 = (taille_ratio * taille) [z3l, z3r] + whatever* dir(alpha);
+ penpos1(line,180+beta+alpha);
+ z1r=pos;
+
+ z2r = z1r + move_away_to *dir (alpha) + (line + turn_to) * dir(alpha+beta);
+ z3r = 0.5 [z2l,z2r] + 0.5 *flare *dir(alpha + beta);
+
+ penpos2(flare, alpha );
+ penpos3(flare, alpha + beta);
+ penlabels(1, 2, 3, 4, 5);
+ pickup pencircle;
+
+ save p;
+ path p;
+ p := z1r{dir(alpha)}
+ .. z2r{dir(180+alpha-beta)}
+ .. z3r{dir(alpha+180)}
+ .. z2l{dir(alpha-beta)}
+
+
+%%% Two versions of the curve: one with z4, the other with z5.
+% .. z5{dir(alpha- beta/2 )}
+ ..z4{dir(180+alpha+beta)}
+ ..z1l{dir(alpha+180)};
+% draw p ;
+ if direction = 1:
+ p
+ else:
+ reverse p
+ fi
+ endgroup
+ enddef;
+
+
+