From 5a9c4f60df1ce788fafb73d970ae047f93e960b2 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Wed, 26 Jan 2005 08:57:06 +0000 Subject: [PATCH] * mf/feta-slag.mf (draw_trillelement): Fix shape to get clean overlapping. * mf/feta-toevallig.mf (draw_meta_sharp): Fix shape to avoid curves with inflections for the 1/2 sharp glyph. --- ChangeLog | 8 ++++++++ mf/feta-slag.mf | 44 +++++++++++++++++++++++--------------------- mf/feta-toevallig.mf | 21 +++++++++++++-------- 3 files changed, 44 insertions(+), 29 deletions(-) diff --git a/ChangeLog b/ChangeLog index 074c32c159..116b73cb4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-01-26 Werner Lemberg + + * mf/feta-slag.mf (draw_trillelement): Fix shape to get clean + overlapping. + + * mf/feta-toevallig.mf (draw_meta_sharp): Fix shape to avoid curves + with inflections for the 1/2 sharp glyph. + 2005-01-24 Werner Lemberg * mf/feta-autometric.mf (fet_beginfont): Set font_coding_scheme diff --git a/mf/feta-slag.mf b/mf/feta-slag.mf index cdc7f1ec72..7bd6e8a48f 100644 --- a/mf/feta-slag.mf +++ b/mf/feta-slag.mf @@ -35,9 +35,9 @@ def draw_trillelement (expr offset) = clearxy; begingroup; - save nw, p; - pair nw; - path p; + save nw, pat, nw_dist, ne_dist; + pair nw, nw_dist, ne_dist; + path pat; pickup pencircle scaled trill_thin; @@ -49,27 +49,29 @@ begingroup; z4 = z1 - trill_ne * trill_overlap; x4 := hround x4; - x5 = x2; - y5 = 0; bot z3' = (top z3) scaled -1; - nw := unitvector (z2 - z3'); - - path p; - p := z5 - -- (z4 - 0.5 trill_thin * nw) - .. bot z4 - .. lft z4 - .. (z4 + 0.5 trill_thin * nw) - -- (z3 + 0.5 trill_thin * nw) - .. top z3 - .. (z3 + 0.5 trill_thin * trill_ne); - p := p - -- p scaled -1 shifted (-feta_eps, -feta_eps) - -- cycle; - p := p shifted (offset, 0); - fill p; + nw = unitvector (z2 - z3'); + ne_dist = (nw rotated -90) * 0.5 trill_thin; + nw_dist = (trill_ne rotated 90) * 0.5 trill_thin; + + z5 = whatever * trill_ne + (z4 - nw_dist); + z5 = whatever * nw + (z3' - ne_dist); + + pat := z5 + -- (z4 - nw_dist){-trill_ne} + .. bot z4{left} + .. lft z4{up} + .. (z4 + nw_dist){trill_ne} + -- (z3 + nw_dist){trill_ne} + .. top z3{right} + .. (z3 + ne_dist){-nw}; + pat := pat + -- pat scaled -1 shifted (-feta_eps, -feta_eps) + -- cycle; + pat := pat shifted (offset, 0); + fill pat; endgroup; enddef; diff --git a/mf/feta-toevallig.mf b/mf/feta-toevallig.mf index de5f013ecd..e298b21d91 100644 --- a/mf/feta-toevallig.mf +++ b/mf/feta-toevallig.mf @@ -30,6 +30,8 @@ picture remember_pic; def draw_meta_sharp (expr width, offset) = save beamheight, beamwidth, beamslope; + save ne, nw_dist; + pair ne, nw_dist; beamwidth := width; @@ -50,14 +52,17 @@ def draw_meta_sharp (expr width, offset) = x4 = x1; top y1 - bot y4 = beamheight; + ne = unitvector (z2 - z1); + nw_dist = (ne rotated 90) * blot_diameter; + fill lft z1{up} - .. top z1{z2 - z1} - -- top z2{z2 - z1} - .. rt z2{down} + ... (z1 + nw_dist){ne} + -- (z2 + nw_dist){ne} + ... rt z2{down} -- rt z3{down} - .. bot z3{z4 - z3} - -- bot z4{z4 - z3} - .. lft z4{up} + ... (z3 - nw_dist){-ne} + -- (z4 - nw_dist){-ne} + ... lft z4{up} -- cycle; labels (1, 2, 3, 4); @@ -268,9 +273,9 @@ fet_beginchar ("Natural", "0"); z1 - z1' = z2 - z2'; draw z1 - .. z2; + -- z2; draw z1' - .. z2'; + -- z2'; beamtop = top y2; -- 2.39.5