diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/cun/cun.old |
Initial commit
Diffstat (limited to 'fonts/cun/cun.old')
-rw-r--r-- | fonts/cun/cun.old | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/fonts/cun/cun.old b/fonts/cun/cun.old new file mode 100644 index 0000000000..ba6048fb00 --- /dev/null +++ b/fonts/cun/cun.old @@ -0,0 +1,153 @@ +%(c) 1990,91 by Joel M. Hoffman + +mode_def testing= + pixels_per_inch:=300*4; + blacker:=.1; + o_correction:=1; + fillin:=.01; + proofing:=2; + fontmaking:=0; + tracingtitles:=1; + enddef; +if unknown mode: +mode:=testing; fi +mode_setup; + +if mode=testing: screenstrokes; fi + +% parameters that control what a wedge looks like. +width_to_length_ratio := 1/2; +tailang := 30; +costail := cosd tailang; +tantail := sind tailang/cosd tailang; + +u# = 1/384in#; +wedge_len# := 50u#; +wedge_wid# := wedge_len#*width_to_length_ratio; +tail_len# := wedge_wid#*costail; +stem_len# := wedge_len# - tail_len#; +tail_porp := tail_len#/wedge_len#; +stem_porp := stem_len#/wedge_len#; +let_height# := wedge_len#+wedge_wid#; +pen_thick# := wedge_len#/10; + +define_pixels(wedge_len, wedge_wid, tail_len, stem_len, let_height, pen_thick); + +def wedgepen = pickup pencircle scaled pen_thick; enddef; + +def drawwedge (expr n) = + wedgelen := V[n]len; + wedgewid := wedgelen*width_to_length_ratio; + taillen := wedgewid*costail; + stemlen := wedgelen - taillen; + V[n]pnt = V[n]mid + ((stemlen, 0) rotated (V[n]theta)); + V[n]ccw = V[n]mid + ((taillen, 0) rotated (V[n]theta + 180 - tailang)); + V[n]cw = V[n]mid + ((taillen, 0) rotated (V[n]theta - 180 + tailang)); + if unknown V[n]mid.x: + V[n]mid.x = (V[n]pnt.x + V[n]ccw.x + V[n]cw.x)/3; + fi + if unknown V[n]mid.y: + V[n]mid.y = (V[n]pnt.y + V[n]ccw.y + V[n]cw.y)/3; + fi + if unknown V[n].tmid.x: + V[n]tmid.x = (V[n]mid.x + V[n]ccw.x + V[n]cw.x)/3; + fi + if unknown V[n].tmid.y: + V[n]tmid.y = (V[n]mid.y + V[n]ccw.y + V[n]cw.y)/3; + fi + % classic +% fill V[n]pnt..controls V[n]mid and V[n]mid..V[n]ccw & +% V[n]ccw..controls V[n]mid and V[n]mid..V[n]cw & +% V[n]cw..controls V[n]mid and V[n]mid..V[n]pnt--cycle; + % wedge +% fill V[n]pnt--V[n]ccw--V[n]cw--cycle; + % academic + wedgepen; + draw V[n]pnt--V[n]mid--V[n]ccw--V[n]cw--V[n]mid; +enddef; + +def lenwedge(expr n) = + V[n]len +enddef; + +def rotwedge(expr n) = + V[n]theta +enddef; + +def pointwedge(expr n) = + V[n]pnt +enddef; + +def midwedge(expr n) = + V[n]mid +enddef; + +def ccwwedge(expr n) = + V[n]ccw +enddef; + +def cwwedge(expr n) = + V[n]cw +enddef; + +def tmidwedge(expr n) = + V[n]tmid +enddef; + +def wedgesetup = + save V; + numeric V[]len, V[]theta; + pair V[]pnt, V[]cw, V[]ccw, V[]mid, V[]tmid; + + for x = 0 step 1 until 20: + lenwedge(x) := wedge_len; + rotwedge(x) := 0; + endfor +enddef; + +beginchar("B",wedge_len#+wedge_wid#,let_height#,0); "ma"; +wedgesetup; + +pointwedge(1) = .5[cwwedge(4),midwedge(4)]; +ccwwedge(4) = (w, h); +ccwwedge(3) = cwwedge(2); +w2pnt.x = w3pnt.x = w4pnt.x +w3cw.y = 0; +rotwedge(4) := -90; + +drawwedge(4); +drawwedge(1); +drawwedge(2); +drawwedge(3); +endchar; + +beginchar("A",wedge_len#,let_height#,0); "nu"; +wedgesetup; + +midwedge(1) = midwedge(2) = (w/2, h/2); +rotwedge(2) := 80; + +drawwedge(1); +drawwedge(2); +endchar; + +beginchar("@",wedge_wid#+wedge_len#,let_height#,0); "e"; +wedgesetup; + +ccwwedge(1) = (0, h); +pointwedge(2) = (wedge_len, wedge_len/2); +midwedge(3) = (wedge_len/2, wedge_len/2); +rotwedge(3) := -90; +ccwwedge(4) = (w, h); +rotwedge(4) := -90; +ccwwedge(5) = (w, h - tail_len); +rotwedge(5) := -90; + +drawwedge(1); +drawwedge(2); +drawwedge(3); +drawwedge(4); +drawwedge(5); +endchar; + +end; |