4 fet_begingroup("floogbars")
6 % Flags pointing down overlap with the notehead (in x-direction), so
7 % the down-flag can be bigger
8 upflag_width# = .750 black_notehead_width#;
9 downflag_width# = .833 black_notehead_width#;
12 % Flags pointing down cannot overlap with the notehead in y-direction,
13 % so they have less slant.
16 % Because of optical illusion, the utmost flag
17 % (bottom for down-pointing, top
18 % for up-pointing) should be smaller than the other flags
21 save hip_thickness, foot_thickness;
22 hip_thickness# = 1.3 stemthickness#;
23 foot_thickness# = hip_thickness#;
26 % Inspired by Adobe Sonata and [Wanske]
27 % for example, see POSTSCRIPT Language -- program design,
28 % page 119, and [Wanske], p 41,42
30 def draw_flag(expr center, flare,
31 hip_depth, hip_width, hip_thickness,
32 foot_depth, foot_width, foot_thickness, flagcut) =
36 penpos2(whatever, 40);
37 x2r - x2l = hip_thickness;
38 penpos3(foot_thickness, 0) ;
41 z2 = center + (hip_width, -flare - hip_depth);
42 z3orig = center + (foot_width, -flare - foot_depth);
43 z3 = (1-flagcut) [z2, z3orig];
46 save bot_dir, bot_path;
49 bot_path := z2{down} .. z3;
50 bot_dir := direction 1 of bot_path;
53 ..tension 1.1 .. z2l ..
54 z3l{bot_dir} .. z3r{-bot_dir} ..
55 z2r .. {up}z1r & z1r -- cycle;
60 % godbewaarme, wat een kutsymbolen
61 fet_beginchar("8th Flag (up)", "3u", "eighthflag")
65 foot_depth, foot_width;
67 flare# = 1.0 interline#;
68 hip_depth# = 8/15 foot_depth#;
69 hip_width# = upflag_width# - hip_thickness#/2;
71 foot_depth# = 15/7 interline#;
72 foot_width# = .8 hip_width#;
74 set_char_box(stemthickness# /2, hip_width# + hip_thickness#/2
76 flare# + foot_depth# + foot_thickness#/2, stemthickness#/2)
79 hip_depth, hip_width, hip_thickness,
80 foot_depth, foot_width, foot_thickness);
81 draw_flag((stemthickness/2,0), flare,
82 hip_depth, hip_width, hip_thickness,
83 foot_depth, foot_width, foot_thickness, 0)
86 pickup pencircle scaled stemthickness;
87 draw (0, 0) .. (0,-2 interline);
90 fet_beginchar("8th Flag (down)", "3d", "deighthflag")
93 foot_depth, foot_width;
95 flare# = 1.0 interline#;
97 hip_depth# = 8/15 foot_depth#;
98 hip_width# = downflag_width# - hip_thickness#/2;
99 foot_depth# = 15/7 interline#;
100 foot_width# = .8 hip_width#;
102 set_char_box(stemthickness# /2, hip_width# + hip_thickness#/2
104 flare# + foot_depth# + foot_thickness#/2, stemthickness#/2)
107 hip_depth, hip_width, hip_thickness,
108 foot_depth, foot_width, foot_thickness);
110 draw_flag((stemthickness/2,0),flare,
111 hip_depth, hip_width, hip_thickness,
112 foot_depth, foot_width, foot_thickness, 0);
113 pickup pencircle scaled stemthickness;
114 draw (0, 0) .. (0,-2 interline);
120 fet_beginchar("16th Flag (up)", "4u", "sixteenthflag")
121 save flare, flagspace,
122 hip_depth, hip_width,
123 foot_depth, foot_width;
125 flare# = 0.85 interline#;
126 flagspace# = .85 interline#;
127 hip_depth# = 8/15 foot_depth#;
129 flagspace# + flare# + foot_depth# = 3.25 interline#;
131 hip_width# = upflag_width# - hip_thickness#/2;
132 foot_width# = .8 hip_width#;
134 set_char_box(stemthickness# /2, hip_width# + hip_thickness#/2
136 3.25 interline#, stemthickness#/2)
138 define_pixels(flagspace);
140 hip_depth, hip_width, hip_thickness,
141 foot_depth, foot_width, foot_thickness);
143 draw_flag((stemthickness/2, 0),flare,
144 1.2 hip_depth, .97 hip_width, hip_thickness,
145 foot_depth, .9 foot_width, foot_thickness, 0.37);
146 draw_flag((stemthickness/2, -flagspace),flare,
147 hip_depth, hip_width, hip_thickness,
148 foot_depth, foot_width, foot_thickness, 0);
150 pickup pencircle scaled stemthickness;
151 draw (0, 0) .. (0,-2 interline);
156 fet_beginchar("16th Flag (up)", "4d", "dsixteenthflag")
157 save flare, flagspace,
158 hip_depth, hip_width,
159 foot_depth, foot_width;
161 flare# = 0.87 interline#;
162 flagspace# = .9 interline#;
163 hip_depth# = .7 foot_depth#;
165 flagspace# + flare# + foot_depth# = 3 interline#;
167 hip_width# = downflag_width# - hip_thickness#/2;
169 foot_width# = 1.00 hip_width#;
171 set_char_box(stemthickness# /2, hip_width# + hip_thickness#/2
173 3 interline#, stemthickness#/2)
175 define_pixels(flagspace);
177 hip_depth, hip_width, hip_thickness,
178 foot_depth, foot_width, foot_thickness);
180 draw_flag((stemthickness/2, 0),flare,
181 hip_depth, .97 hip_width, hip_thickness,
182 1.2 foot_depth, .95 foot_width, foot_thickness, 0.0);
184 draw_flag((stemthickness/2, -flagspace),flare,
185 hip_depth, hip_width, hip_thickness,
186 foot_depth, foot_width, foot_thickness, 0);
188 pickup pencircle scaled stemthickness;
189 draw (0, 0) .. (0,-2 interline);
194 fet_endgroup("floogbars");