1%%%%%%%%%%%%%%%%%%%%%% xnshbase.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2% base file for extended NASH 3% 13.07.98 4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5% (c) Klaus Lagally 6% Institut fuer Informatik 7% Universitaet Stuttgart 8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 9 10if unknown cmbase: else: 11errhelp "you are using 'cmbase'; rerun with base=&plain"; 12errmessage "this font needs the 'plain' METAFONT base; run aborted"; 13endinput 14fi; 15 16if unknown nashcode: input xarbsymb fi; 17 18xnshbase := 1; 19 20def font_setup = 21 define_pixels(dx, dy, dp, em, ex); 22 define_blacker_pixels(px, py, spx); 23 pa := pen_angle; pl := px++py; da := pa - angle(px,py); 24 pickup pensquare xscaled px yscaled py rotated pa; 25% pickup pencircle xscaled px yscaled py rotated pa; 26 nash_pen := savepen; 27 pickup pencircle scaled spx; 28 dia_pen := savepen; 29enddef; 30 31def makegrid(text r) = 32 for x=0 step dx until w+.5dx: 33 for y=0 step dy until h+.5dy: 34 fill unitsquare shifted (x,y); 35 endfor; 36 for y=dy step dy until d+.5dy: 37 fill unitsquare shifted (x,-y); 38 endfor; 39 endfor 40% for y=0,h,-d: r((0,y), (w,y)); endfor 41% for x=0,w: r((x,-d), (x,h)); endfor 42 maketicks(r); 43enddef; 44 45%%%%%%%%%%%%%% char-macros %%%%%%%%%%%%%%%%% 46 47def arabchar(expr code, form, uw, uh, ud) = 48 beginchar(if string code: code else: (code + form) fi, 49 uw*dx#, uh*dy#, (ud + dia_d)*dy#); 50 pickup nash_pen; 51 if .5w <> good.x .5w: change_width; fi 52 x.l = x.ll = 0; x.r = x.rr = w; x.m = 0.5w; 53 bot y.l = bot y.r = y.m = bot y.ll - .5ex = 0; y.rr = y.ll; 54enddef; 55 56def diachar(expr code, uw, uh) = 57 beginchar(code, uw*dx#, (uh+0.5)*dy#, 0.5*dy#); 58% beginchar(code, uw*dx#, uh*dy#, 0); 59 pickup dia_pen; 60 if .5w <> good.x .5w: change_width; fi 61 lft x.l = 0; rt x.r = w; 62 y.l = 0.5dy; y.r = h - dy; 63% bot y.l = 0; top y.r = h; 64enddef; 65 66def numchar(expr code) = 67 beginchar(code, 10*dx#, 10*dy#, 5*dy#); 68 pickup nash_pen; 69 if .5w <> good.x .5w: change_width; fi 70 lft x.l = 0; rt x.r = w; 71 bot y.l = -d; top y.r = h; 72% bot y.l = 0; top y.r = h; 73enddef; 74 75extra_endchar := 76extra_endchar & "penlabels(l,m,r,ll,rr,range 1 thru 20);"; 77 78%%%%%%%%%%%%%% dot-macros %%%%%%%%%%%%%%%%% 79 80def put_dot (suffix $) = 81 z.$1 - z.$2 = (0, px - py) rotated pa; 82 z.$ = .5[z.$1, z.$2]; 83 draw z.$1--z.$2; 84 labels($1,$2); 85enddef; 86 87def one_dot (expr n) = 88 x.dd := x.m; y.dd := y.m + round(n*dy); 89 put_dot(dd); 90enddef; 91 92def two_dots (expr n) = 93 x.dr - x.m = x.m - x.dl = round(dpx*dx); 94 y.dl = y.dr = y.m + round(n*dy); 95 put_dot(dl); put_dot(dr); 96enddef; 97 98def three_dots (expr n) = 99 two_dots(n); one_dot(n+dpy); 100enddef; 101 102def three_dots_low (expr n) = 103 two_dots(n); one_dot(n-dpy); 104enddef; 105 106%%%%%%%%%%%%%% stroke-macros %%%%%%%%%%%%%%%%% 107 108def bow (expr u, v, w) = 109 draw u..controls v and v..w; 110enddef; 111 112def l_att (suffix $) = 113 x.$l = x.$ - dx; y.$l = y.l; 114 bow(z.$, z.$l, z.l); 115enddef; 116 117def r_att (suffix $) = 118 x.$r = x.$ + dx; y.$r = y.r; 119 bow(z.$, z.$r, z.r); 120enddef; 121 122def r_att (suffix $) = 123 x.$r = x.$ + dx; y.$r = y.r; 124% bow(z.$, z.$r, z.r); 125draw z.${z.$r-z.$}..z.r{right}; 126enddef; 127 128def serif (suffix $) = 129 z.$ = 0.2[z.$2,z.$1]; 130% z.$2 - z.$1 = 3dy * (-4dx,11dy); % 110 131 y.$2 - y.$1 = 3dy; 132 z.$2 - z.$1 = whatever * (-4dx,11dy); 133 draw z.$1--z.$2; 134enddef; 135 136def s_bow (suffix $) = 137 x.$1 - .5dx = x.$; 138 x.$2 - 4dx = lft x.$3 = lft x.$4 + 1.5dx - pl = x.l; 139 y.$1 - dy = y.$3 = y.$4 - 2dy = y.$2 + 2dy = - 2dy; 140 draw z.$..z.$1{down}..z.$3{up}..z.$4; 141enddef; 142 143def p_loop (suffix $) = 144pickup dia_pen; 145x.$1 = x.$2 = x.$; y.$1 + spx + dy = y.$2; top y.$2 = y.$; 146draw z.$1..z.$2..cycle; 147pickup nash_pen; 148enddef; 149 150def r_con (suffix $) = 151 charic := (y.$-y.r)/vppp; 152enddef; 153 154%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 155 156%%%%%%%%%%%%%% bah-macros %%%%%%%%%%%%%%%%% 157 158def bah_bow = 159x1 = x4 + dx = x2 + 13.8dx; x2 = x3 = x.l + 0.6dx; 160%x1 = x4 = x2 + 13.8dx; x2 = x3 = x.l + 0.6dx; 161y4 - 5dy = y1 - 3dy = y2 - 2dy = y.m = y3 - 4dy; 162x5 = x.m; y5 = y.m - 0.5dy; 163enddef; 164 165def bah_end = 166bah_bow; draw z1..z5{left}..z2..z3; r_att(1); 167enddef; 168 169def bah_iso = 170bah_bow; draw z4..z1..z5{left}..z2..z3; 171enddef; 172 173def bah_mid = 174x6 = x.m; y6 = good.y (y.r + 2dy); 175l_att(6); r_att(6); 176enddef; 177 178def bah_beg = 179x.m := x.m + 0.5dx; 180x1 - dx = x2 = x.m; y1 = y.l; y2 = y.m + 4dy; 181bow(z2, z1, z.l); 182enddef; 183 184%%%%%%%%%%%%%% hhah-macros %%%%%%%%%%%%%%%%% 185 186def hhah_iso_bar = 187x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 4dy = y.r; 188x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right}; 189enddef; 190 191def hhah_mid_bar = 192x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 3dy = y.r; 193x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right}; 194enddef; 195 196def hhah_beg_bar = 197x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 2dy = y.r; 198x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right}; 199enddef; 200 201def hhah_bow = 202lft x4 = x1 - 2dx = x5 - 8dx; rt x6 - 6dx = x5; 203y5 = y6 - dy = -10dy; y4 = 0.6[y2,y5]; 204penpos4(pl,da); penpos5(pl,90); penpos6(0.3dy,90); 205draw z2{left}..z4{down}; 206fill z4r{down}..z5r{right}..z6r--z6l--z5l{left}..z4l{up}--cycle; 207enddef; 208 209def hhah_iso = 210hhah_iso_bar; hhah_bow; 211enddef; 212 213def hhah_end = 214hhah_mid_bar; hhah_bow; 215draw z3{down}..z.r{right}; 216enddef; 217 218def hhah_mid = 219hhah_mid_bar; draw z2{left}..z.l{left}; 220draw z3{down}..z.r{right}; 221enddef; 222 223def hhah_beg = 224hhah_beg_bar; draw z2{left}..z.l{left}; 225enddef; 226 227%%%%%%%%%%%%%% dal-macros %%%%%%%%%%%%%%%%% 228 229def dal_iso = 230x1 = x2 + 2dx = x3 - 3dx = x.r - 4dx; x.m := x1; 231y1 - 6dy = y2 = y3 - dy = y.r; 232draw z1{(7dx,-4dy)}..z3..z2{left}; 233enddef; 234 235def dal_end = 236x1 + dx = x3 - dx = x4 + 4dx = x.r - 3dx; lft x2 = x.r - 9dx; 237y1 = 8dy; y2 - dy = y3 = y4 = y.l; z5 = .3[z1,z3]; 238draw z1--z5{z3-z1}..z.r{right}; 239draw z5{z3 - z1}..z4{left}..z2; 240enddef; 241 242%%%%%%%%%%%%%% rah-macros %%%%%%%%%%%%%%%%% 243 244def rah_bow = 245x5 + dx = x2 + dx = x4 + 9dx = x3 - px + 6dx = x.r; 246y5 + 3dy = y2 - 0.5dy = y4 + 6dy = y3 + 6dy = y.r; 247penpos2(pl,da); penpos3(pl,90); 248penpos4(0.3dy,90); penpos5(0.4[py,px],0); 249enddef; 250 251def rah_iso = 252rah_bow; 253y1 - 2dy = y.r; x1 + 0.5dx = x2; 254penpos1(pl,da); 255fill z1l..z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r..z1r--cycle; 256enddef; 257 258def rah_end = 259rah_bow; 260y1 - .5dy = y.r; x1 = x2; % = x.r - dx; 261fill z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r--cycle; 262draw z1..z.r{right}; 263enddef; 264 265%%%%%%%%%%%%%% sin-macros %%%%%%%%%%%%%%%%% 266 267def s_wave = 268z2 - z1 = z5 - z4 = 2(z3 - z2); 269x3 - x1 = 6(x3 - x5) = 6dx; x.m := x2; 270y4 = y5 - 0.5dy = y2 - 2.5dy = y.r; 271draw z3..z5..z2; draw z2..z4{left}; 272enddef; 273 274def mid_wave = 275x3 = x.r - 3dx; s_wave; 276draw z4{left}..z1; 277enddef; 278 279def beg_wave = 280rt x3 = x.r; s_wave; 281draw z4{left}..z1; 282enddef; 283 284def sin_iso = 285beg_wave; s_bow(1); 286enddef; 287 288def sin_end = 289mid_wave; 290draw z3{down}..z.r{right}; s_bow(1); enddef; 291 292def sin_mid = 293mid_wave; draw z3{down}..z.r{right}; l_att(1); 294enddef; 295 296def sin_beg = 297beg_wave; l_att(1); 298enddef; 299 300%%%%%%%%%%%%%% sad-macros %%%%%%%%%%%%%%%%% 301 302def sad_bow = 303x2 - dx = x3 - 9dx; x2 + 3dx = x.m; x4 = x2 - 2dx; 304y2 = y3 - 3dy = y4 - 2dy = y.r; 305x8 = x2 + 3.5dx; y8 = y2 + 0.5dy; 306draw z2{(5dx,6dy)}..z3{(4dx,-7dy)}..tension 2..z2{left}; 307enddef; 308 309def sad_iso = 310x.m := x.m + 4dx; 311sad_bow; draw z2{left}..z4; s_bow(4); 312enddef; 313 314def sad_beg = 315x.m := x.m + dx; 316sad_bow; draw z2{left}..z4; l_att(4); 317enddef; 318 319%%%%%%%%%%%%%% ttah-macros %%%%%%%%%%%%%%%%% 320 321def ttah_stroke = 322x5 = x7 - dx = x2; y5 = 12dy; y7 = y2 + dy; 323draw z5{down}..z7{down}; 324serif(5); 325enddef; 326 327def ttah_tail = 328x2 - x6 = 5dx; y6 = top y2; 329penpos2(pl,da); 330fill z6--z2r--z2l{left}..z6..cycle; 331enddef; 332 333def ttah_iso = 334x.m := x.m + dx; 335sad_bow; ttah_stroke; ttah_tail; 336x.m := x.m + dx; 337enddef; 338 339def ttah_beg = 340sad_bow; ttah_stroke; 341x.m := x.m + dx; 342enddef; 343 344%%%%%%%%%%%%%% ain-macros %%%%%%%%%%%%%%%%% 345 346def ain_head = 347x.m := x.m - 2dx; 348lda := 0.5pa + angle(dx,dy); 349penpos7(pl,pa); penpos3(0.3dy,90); 350penpos2(px,lda); penpos8(px,lda); 351x7 + 2dx = x3 + dx = x2 + 6dx; x8 = x2 + 0.3dx; 352y7 = y2 - 3dy = y3 - 4dy; y8 = y2; z7 = 0.25[z1, z.l]; 353fill z7l{z.l-z1}..z2l{up}--z2r--z8r{down}..z7r{z1-z.l}--cycle; 354fill z2r{(7dx,10dy)}..z3r--z3l..z8l{(-7dx,-10dy)}--z2l--cycle; 355enddef; 356 357def ain_bow = 358lft x4 = x.l = x5 - 8dx; rt x6 = x5 + 6dx; 359y5 = y6 - dy = -10dy; y4 = 0.6[y1,y5]; 360penpos4(pl,da); penpos5(pl,90); penpos6(0.3dy,90); 361draw z1{z.l - z1}..z4{down}; 362fill z4r{down}..z5r{right}..z6r--z6l--z5l{left}..z4l{up}--cycle; 363enddef; 364 365def ain_top = 366x2 = x1 = x.r - 3.5dx; y2 - 2dy = y1 = 2dy; 367%x2 = x1 = x.m + 0.5dx; y2 - 2dy = y1 = 2dy; 368x7 - x2 = x2 - x3 = 2dx; y7 = y3 = y2 - 0.5dy; 369x8 = x3 - dx; y8 = y3; 370draw z.r{left}..z1..z3; draw z8..z2..z7; 371enddef; 372 373def ain_iso = 374x1 = x.r - 3dx; y1 = 5dy; 375ain_head; ain_bow; 376enddef; 377 378def ain_end = 379ain_top; draw z7..z1{z.l - z1}; ain_bow; 380enddef; 381 382def ain_mid = 383ain_top; draw z7..z1..z.l{left}; 384enddef; 385 386def ain_beg = 387rt x1 = x.r; y1 = 3dy; 388ain_head; draw z1..z7..z.l{left}; 389enddef; 390 391%%%%%%%%%%%%%% fah-macros %%%%%%%%%%%%%%%%% 392 393def fah_iso = 394x.m := x.m + 4dx; 395x1 = x2 - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r; 396y1 = y4 = 6dy; y2 = y3 = 8dy; 397lft x5 = x.l; lft x6 = lft x5 - 1.5dx + pl; x7 = 6dx; 398y5 = 3dy; y6 = y5 + 3dy; bot y7 = -0.5dy; 399draw z2..z1..z3..z4{down}..z7..z5{up}..z6; 400enddef; 401 402def fah_end = 403x.m := x.m + 4dx; 404x1 = x2 + dx = x.r - 2dx; lft x3 = lft x4 + 1.5dx - pl = x5 - 5dx = x.l; 405y5 = dy; y1 = 6.5dy; y2 = 2dy; y3 = 4dy; y4 = 6dy; 406x2a + 3dx = x2b = x1; y2a = y2b = y.r + 2dy; 407draw z.r{left}..z2a..z1; 408draw z1..z2b..tension 1.5..z5..z3{up}..z4; 409enddef; 410 411def fah_mid = 412x1 = x2 + dx = x.r - 2dx; y1 - 5dy = y2 - 0.5dy = y.r; 413x2a + 3dx = x2b = x1; y2a = y2b = y.r + 2dy; 414draw z.r{left}..z2a..z1; draw z1..z2b..z.l{left}; 415enddef; 416 417def fah_beg = 418x1 = x2 - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r; 419y1 = y4 = 4dy; y2 = y3 = 6dy; 420draw z2..z1..z3..z4{down}..z.l{left}; 421enddef; 422 423%%%%%%%%%%%%%% qaf-macros %%%%%%%%%%%%%%%%% 424 425def qaf_iso = 426x.m := x.m + 2dx; 427x1 = x2 - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r; 428y1 = y4 = 4dy; y2 = y3 = 6dy; 429lft x5 = x.l; lft x6 = lft x5 - 1.5dx + pl; x7 = 5dx; 430y5 = dy; y6 = y5 + 3dy; y7 = -2dy; 431draw z2..z1..z3..z4{down}..z7..z5{up}..z6; 432enddef; 433 434def qaf_end = 435x.m := x.m + 2dx; 436x1 + 3dx = x2 + dx = x.r; 437lft x3 = lft x4 + 1.5dx - pl = x5 - 5dx = x.l; 438y1 - 4dy = y2 = y.r = y3 + 2dy = y4 = y5 + 5dy; 439draw z.r{left}..z2..z1{right}..z2..z5..z3{up}..z4; 440enddef; 441 442%%%%%%%%%%%%%% kaf-macros %%%%%%%%%%%%%%%%% 443 444def kaf_mark (suffix $) = 445x.$6 + dx = x.$7 + 2dx = x.$8 = x.$9 + 3dx = x.$; 446y.$6 - 3dy = y.$7 - dy = y.$8 = y.$9 + dy = y.$; 447pickup dia_pen; 448draw z.$6{(-6dx,-5dy)}..z.$7..z.$8..z.$9{left}; 449pickup nash_pen; 450labels($6,$7,$9); 451enddef; 452 453def kaf_beg = 454x1 - 11dx = x2 = x4 - 10dx = x.l; 455%x1 = x.r - dx; x2 = x.l; x4 = x.r - 2dx; 456%y4 = y.r; y1 = 14dy; y2 = 9dy; z3 = .4[z2, z4]; 457y4 = y.l = y1 - 13dy = y2 - 8dy; z3 = .4[z2, z4]; 458bow (z1, z2, z3); 459draw z3{z3 - z2}..z.l{left}; 460enddef; 461 462%%%%%%%%%%%%%% gaf-macros %%%%%%%%%%%%%%%%% 463 464def gaf_iso = 465x1 - 15dx = x2 - 6dx = x4 - 8dx = x6 - dx = x.l; 466y1 - 13dy = y2 - 9dy = y4 = y6 - dy = y.l; 467z3 = .7[z2, z4]; z5 = .5[z4, z.l]; 468bow(z1, z2, z3); bow(z3, z4, z5); bow(z5, z.l, z6); 469enddef; 470 471def gaf_iso = 472x1 - 2dx = x2 + 7dx = x4 +5dx = x.r; 473y1 - 13dy = y2 - 9dy = y4 = y.r; 474z3 = .7[z2, z4]; bow(z1, z2, z3); 475x6 = x7 = x.l + 0.6dx; y6 = y7 - 2dy = y.l + dx; 476x5 = .5[x6, x4]; y5 = y.m; z13 = .5[z4, z3]; 477draw z7 .. z6 .. z5{right} .. z13{z3-z13}--z3; 478enddef; 479 480def gaf_serif = 481x10 = x1; y10 = y1 + 2.5dy; x11 = x2 + 2dx; y11 = y2 + 3dy; 482pickup dia_pen; 483z12 = 0.1[z10,z11]; draw z12--z11; 484pickup nash_pen; 485enddef; 486 487%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 488 489def serpent = 490x1 = x3 = x.r - 3dx; 491x2 = x4 = x5 - dx = x.l + 4dx; 492y1 = y2 = y4 - 4dy = y5 - 8dy = y.l; y3 = y4; 493draw z5 .. z4{right} .. z3{right} .. z1{left} .. z2; 494enddef; 495 496%%%%%%%%%%%%%% nun-macros %%%%%%%%%%%%%%%%% 497 498def nun_iso = 499x1 + 2dx = rt x2 = x.r; x3 = x.m; lft x4 = lft x5 + 1.5dx - pl = x.l; 500y1 - 8dy = y2 - 3dy = y4 - 3dy = y5 - 5dy = y3 + dy = y.r - 3dy; 501draw z1..z2{down}..z3..z4{up}..z5; 502enddef; 503 504def nun_end = 505x1 = x.r - 2dx; y1 = y.r + dy; 506x2 - .5dx = x1; lft x3 = lft x4 + 1.5dx - pl = x.l; 507y2 - dy = y3 = y4 - 2dy = y.r - 3dy; 508x5 = x.m; y5 = y3 - 4dy; 509draw z1..z2{down}..z5..z3{up}..z4; r_att(1); 510enddef; 511 512%%%%%%%%%%%%%% waw-macros %%%%%%%%%%%%%%%%% 513 514def waw_bow = 515rah_bow; 516x1 + 2.5dx = x2; y1 - 3dy = y2; 517x6 = x1; y6 = y2; 518fill z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r--cycle; 519enddef; 520 521def waw_bar = 522pickup dia_pen; 523x7 = .3[x4,x5]; y7 = y5; draw z7--z5; 524pickup nash_pen; 525enddef; 526 527%%%%%%%%%%%%%% hah-macros %%%%%%%%%%%%%%%%% 528 529def hah_iso = 530x1 = x.m - .5dx; rt x2 = x.r; lft x3 = x.l; 531y1 = 7dy; y2 = y3 = 3dy; 532%y1 = 6dy; y2 = y3 = 3dy; 533%y1 = 6dy; y2 = y3 = 2dy; 534draw z1..z2{down}..z3{up}..z1; 535enddef; 536 537def hah_end = 538x1 = x2 - dx = x4 + 2.5dx = x.m; 539y1 = 7dy; y2 = y.r; y4 = 4dy; 540z3 = .15[z1, z2]; z5 = .6[z1, z2]; 541draw z1--z5{z5-z1}..z.r{right}; 542draw z3{(-7dx,-4dy)}..z4{down}..z5{(7dx,4dy)}; 543enddef; 544 545%%%%%%%%%%%%%% yah-macros %%%%%%%%%%%%%%%%% 546 547def yah_iso = 548x6 = x1 + 5dx = x2 + dx = x.r = x3 + 6dx; 549lft x4 = lft x5 + 1.5dx - pl = x.r - 13dx; 550%x6 = x1 + 5dx = x2 + dx = x.r = x3 + 6dx; lft x4 = x5 - dx = x.r - 13dx; 551y6 - 7dy = y1 - 3dy = y5 - 3dy = y2 - dy = y4 = y3 + 3dy = y.r - 2dy; 552draw z6{up}..tension 1.5..z1{down}..tension 1.5 553..z2{down}..tension 1.5..z3..z4{up}..z5; 554enddef; 555 556def yah_end = 557x1 + 4dx = rt x2 = x.r = x3 + 5dx; 558lft x4 = lft x5 + 1.5dx - pl = x.r - 11dx; 559y1 + 2dy = y2 + 4dy = y4 + 4dy = y3 + 7dy = y5 + dy = y.r; 560draw z.r{left}..z1{down}..tension 1.5 561..z2{down}..tension 1.5..z3..z4{up}..z5; 562enddef; 563 564def yah_p_iso = 565x10 = x4 - dx = x5; x3 = x6 = x7 + 2dx = x4 - 8dx; x8 = x4 + 4dx = x.r; 566y10 = y6 = y4 - 3dy = y5 - 5dy = y.r; y3 = y.rr; y7 = y8 = y.r - 3dy; 567z9 = 0.2[z10,z5]; z1 = 0.9[z6,z9]; z2 = 0.8[z3,z5]; 568draw z8--z7{left}..z6..controls z1 and z2..z5..z4{(dx,-6dy)}; 569enddef; 570 571def yah_p_end = 572x8 - 7dx = x7 + 3dx = x.r; y7 = y8 = y.r - 3dy; 573draw z8--z7{left}..z.r{(4dx,dy)}; 574enddef; 575 576%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%% 577 578 579