summaryrefslogtreecommitdiff
path: root/metapost/context/base/mp-grap.mpiv
diff options
context:
space:
mode:
Diffstat (limited to 'metapost/context/base/mp-grap.mpiv')
-rw-r--r--metapost/context/base/mp-grap.mpiv202
1 files changed, 0 insertions, 202 deletions
diff --git a/metapost/context/base/mp-grap.mpiv b/metapost/context/base/mp-grap.mpiv
deleted file mode 100644
index 68d95c9eb..000000000
--- a/metapost/context/base/mp-grap.mpiv
+++ /dev/null
@@ -1,202 +0,0 @@
-%D \module
-%D [ file=mp-grap.mpiv,
-%D version=2012.10.16, % 2008.09.08 and earlier,
-%D title=\CONTEXT\ \METAPOST\ graphics,
-%D subtitle=graph packagesupport,
-%D author=Hans Hagen \& Alan Braslau,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See licen-en.pdf for
-%C details.
-
-if known context_grap : endinput ; fi ;
-
-boolean context_grap ; context_grap := true ;
-
-input graph.mp ;
-
-vardef roundd(expr x, d) =
- if abs d > 4 :
- if d > 0 :
- x
- else :
- 0
- fi
- elseif d > 0 :
- save i ; i = floor x ;
- i + round(Ten_to[d]*(x-i))/Ten_to[d]
- else :
- round(x/Ten_to[-d])*Ten_to[-d]
- fi
-enddef ;
-
-Ten_to0 = 1 ;
-Ten_to1 = 10 ;
-Ten_to2 = 100 ;
-Ten_to3 = 1000 ;
-Ten_to4 = 10000 ;
-
-def sFe_base = enddef ;
-
-if unknown Fe_plus :
- picture Fe_plus ; Fe_plus := textext("+") ; % btex + etex ;
-fi ;
-
-vardef format (expr f,x) = dofmt_.Feform_(f,x) enddef ;
-vardef Mformat (expr f,x) = dofmt_.Meform (f,x) enddef ;
-vardef formatstr (expr f,x) = dofmt_.Feform_(f,x) enddef ;
-vardef Mformatstr(expr f,x) = dofmt_.Meform(f,x) enddef ;
-
-vardef escaped_format(expr s) =
- "" for n=1 upto length(s) : &
- if ASCII substring (n,n+1) of s = 37 :
- "@"
- else :
- substring (n,n+1) of s
- fi
- endfor
-enddef ;
-
-vardef dofmt_@#(expr f, x) =
- % textext("\MPgraphformat{" & escaped_format(f) & "}{" & (if string x : x else: decimal x fi) & "}")
- textext(mfun_format_number(escaped_format(f),x))
-enddef ;
-
-% We redefine autogrid from graph.mp adding the possibility of differing X and Y
-% formats. Autoform is defined in graph.mp (by default "%g").
-%
-% string Autoform_X ; Autoform_X := "@.0e" ;
-% string Autoform_Y ; Autoform_Y := "@.0e" ;
-
-vardef autogrid(suffix tx, ty) text w =
- Gneedgr_ := false ;
- if str tx <> "" :
- for x=auto.x :
- tx (
- if string Autoform_X :
- if Autoform_X <> "" :
- Autoform_X
- else :
- Autoform
- fi
- else :
- Autoform
- fi,
- x) w ;
- endfor
- fi ;
- if str ty <> "" :
- for y=auto.y :
- ty (
- if string Autoform_Y :
- if Autoform_Y <> "" :
- Autoform_Y
- else :
- Autoform
- fi
- else :
- Autoform
- fi,
- y) w ;
- endfor
- fi ;
-enddef ;
-
-% A couple of extensions:
-
-% Define a vector function sym returning a picture: 10 different shapes,
-% unfilled outline, interior filled with different shades of the background.
-% Thus, overlapping points on a plot are more clearly distinguishable.
-
-% grap_symsize := fontsize defaultfont ; % can be redefined
-%
-% dynamic version:
-
-vardef grap_symsize =
- fontsize defaultfont
-enddef ;
-
-path grap_sym[] ; % (internal) symbol path
-
-grap_sym[0] := (0,0) ; % point
-grap_sym[1] := fullcircle ; % circle
-grap_sym[2] := (up -- down) scaled .5 ; % vertical bar
-
-for i = 3 upto 9 : % polygons
- grap_sym[i] := for j = 0 upto i-1 :
- (up scaled .5) rotated (j*360/i) --
- endfor cycle ;
-endfor
-
-grap_sym[12] := grap_sym[2] rotated +90 ; % horizontal line
-grap_sym[22] := grap_sym[2] rotated +45 ; % backslash
-grap_sym[32] := grap_sym[2] rotated -45 ; % slash
-grap_sym[13] := grap_sym[3] rotated 180 ; % down triangle
-grap_sym[23] := grap_sym[3] rotated -90 ; % right triangle
-grap_sym[33] := grap_sym[3] rotated +90 ; % left triangle
-grap_sym[14] := grap_sym[4] rotated +45 ; % square
-grap_sym[15] := grap_sym[5] rotated 180 ; % down pentagon
-grap_sym[16] := grap_sym[6] rotated +90 ; % turned hexagon
-grap_sym[17] := grap_sym[7] rotated 180 ;
-grap_sym[18] := grap_sym[8] rotated +22.5 ;
-
-numeric l ;
-
-for j = 5 upto 9 :
- l := length(grap_sym[j]) ;
- pair p[] ;
- for i = 0 upto l :
- p[i] = whatever [point i of grap_sym[j],
- point (i+2 mod l) of grap_sym[j]] ;
- p[i] = whatever [point (i+1 mod l) of grap_sym[j],
- point (i+l-1 mod l) of grap_sym[j]] ;
- endfor
- grap_sym[20+j] := for i = 0 upto l : point i of grap_sym[j]--p[i]--endfor cycle ;
-endfor
-
-path s ; s := grap_sym[4] ;
-path q ; q := s scaled .25 ;
-numeric l ; l := length(s) ;
-
-pair p[] ;
-
-grap_sym[24] := for i = 0 upto l-1 :
- hide(
- p[i] = whatever [point i of s, point (i+1 mod l) of s] ;
- p[i] = whatever [point i of q, point (i-1+l mod l) of q] ;
- p[i+l] = whatever [point i of s, point (i+1 mod l) of s] ;
- p[i+l] = whatever [point i+1 of q, point (i+2 mod l) of q] ;
- )
- point i of q -- p[i] -- p[i+l] --
-endfor cycle ;
-
-grap_sym[34] := grap_sym[24] rotated 45 ;
-
- % usage: gdraw p plot plotsymbol(1,red,1) ; % a filled red circle
- % usage: gdraw p plot plotsymbol(4,blue,0) ; % a blue square
- % usage: gdraw p plot plotsymbol(14,green,0.5) ; % a 50% filled green diamond
-
-def plotsymbol(expr n,c,f) = % (number,color,color|number)
- if known grap_sym[n] :
- image(
- path p ; p := grap_sym[n] scaled grap_symsize ;
- undraw p withpen currentpen scaled 2 ;
- if cycle p : fill p withcolor
- if color f and known f :
- f
- elseif numeric f and known f and color c and known c :
- f[background,c]
- elseif numeric f and known f :
- f[background,black]
- else :
- background
- fi ;
- fi
- draw p if color c and known c : withcolor c fi ;
- )
- else :
- nullpicture
- fi
-enddef ;