summaryrefslogtreecommitdiff
path: root/macros/generic/diagrams/xypic/mfinputs/xymisc10.mf
blob: 268e3c42a621bee3206eeca96c9fb21142022ab4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
% $Id: xymisc10.mf,v 3.5 2010/06/10 18:45:50 krisrose Exp $ -*-tex-*-
%
% XYMISC10: miscellaneous characters for XY mode at 10 point.
% Copyright (c) 1991,1992  Kristoffer H. Rose  <krisrose@tug.org>
%
% This file is part of the XY-pic macro package.
%
% The XY-pic macro package is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or (at your
% option) any later version.
%
% The XY-pic macro package is distributed in the hope that it will be
% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
% Public License for more details.
%
% You should have received a copy of the GNU General Public License along
% with this macro package; if not, see http://www.gnu.org/licenses/.
%
% CONTENTS:
%   Metaness.
%   Testing...
%   Font.
%     Dot fitting the rule width.
%     Quarter circles with radii from 1 to 10 and 12 to 30 pt; all have
%	height = depth = .5width = radius and are centered such that they
%	enter and leave the box in the middle of the sides.
%
font_identifier "XYMISC"; font_size 10pt#;
font_coding_scheme:="XY miscellaneous";
mode_setup;

% METANESS...
%
rulew# = .4pt#; define_whole_blacker_pixels(rulew); % line thickness
%
def pickuppen = pickup pencircle scaled rulew enddef;

% TESTING...we redefine openit because the characters extend far to the
% left of the bounding box!
%
def openit = %%let echar = endchar; def endchar = echar; stop ". " enddef;
 openwindow currentwindow
  from origin to (1000,800) at (-200,300)
 enddef;

% FONT.
%
% Font dimension 8 is the rule thickness (cf. The TeXbook, app.G)
fontdimen 8: rulew#;

% DOT FOR DOTTED LINES AND DUMMY CIRCLE...
%
beginchar(0,0,0,0); pickuppen; drawdot (0,0); endchar;
beginchar(1,0,0,0); pickuppen; drawdot (0,0); endchar;
beginchar(2,0,0,0); pickuppen; drawdot (0,0); endchar;
beginchar(3,0,0,0); pickuppen; drawdot (0,0); endchar;

% QUARTER CIRCLES...  The four circles with radius N pt, 0 < N <= 10, are
% located at N*4 + QUADRANT, where 1 <= QUADRANT <= 4.  All have width as
% their radius with reference point at the level of the horizontal end of the
% arc and height, depth as the extent of the arc.
%
for radius = 1 step 1 until 10:
 beginchar(radius*4,2radius*pt#,radius*pt#,radius*pt#);
  pickuppen;
  draw quartercircle rotated 180 shifted (1,.5) scaled (radius*2pt);
 endchar;
 beginchar(radius*4+1,2radius*pt#,radius*pt#,radius*pt#);
  pickuppen;
  draw quartercircle rotated -90 shifted (0,.5) scaled (radius*2pt);
 endchar;
 beginchar(radius*4+2,2radius*pt#,radius*pt#,radius*pt#);
  pickuppen;
  draw quartercircle shifted (0,-.5) scaled (radius*2pt);
 endchar;
 beginchar(radius*4+3,2radius*pt#,radius*pt#,radius*pt#);
  pickuppen;
  draw quartercircle rotated 90 shifted (1,-.5) scaled (radius*2pt);
 endchar;
endfor;
%
% For 12 <= N <= 40 we step in 2pt increments... so for 10 <= N <= 40 the
% quarter circle with radius N is located at (N div 2 + 20 + QUADRANT).
%
for radius = 12 step 2 until 40:
 beginchar(radius*2+20,2radius*pt#,radius*pt#,radius*pt#);
  pickuppen;
  draw quartercircle rotated 180 shifted (1,.5) scaled (radius*2pt);
 endchar;
 beginchar(radius*2+21,2radius*pt#,radius*pt#,radius*pt#);
  pickuppen;
  draw quartercircle rotated -90 shifted (0,.5) scaled (radius*2pt);
 endchar;
 beginchar(radius*2+22,2radius*pt#,radius*pt#,radius*pt#);
  pickuppen;
  draw quartercircle shifted (0,-.5) scaled (radius*2pt);
 endchar;
 beginchar(radius*2+23,2radius*pt#,radius*pt#,radius*pt#);
  pickuppen;
  draw quartercircle rotated 90 shifted (1,-.5) scaled (radius*2pt);
 endchar;
endfor;

bye.
%
% $Log: xymisc10.mf,v $
% Revision 3.5  2010/06/10 18:45:50  krisrose
% Reference to GPL by URL.
%
% Revision 3.4  2010/04/16 06:06:52  krisrose
% Preparing for a new release...
%
% Revision 3.3  1996/12/19 03:31:56  krisrose
% Maintenance release
%
% Revision 3.0  1995/07/07 20:14:21  kris
% Major release w/new User's Guide!
%
% Revision 2.6  1992/06/24  01:23:34  kris
% Cleaned up.
%
% Revision 2.1  1992/01/02  14:54:07  kris
% Release version.
%
% Revision 1.6  1991/11/27  06:54:21  kris
% \beta-test on DIKU.
%
% Revision 1.5  1991/10/21  23:19:08  kris
% Version described in DIKU student report 91-7-10.
%
% Revision 1.4  1991/08/22  01:07:46  kris
% Now has quarter circles to radius 40pt as required for xy.doc[1.28].
%
% Revision 1.3  1991/07/21  21:04:35  kris
% Tested with xy.doc[1.19].
%
% Revision 1.2  1991/07/19  14:52:26  kris
% Changed quarter circles to fit xy.doc[1.19?].
% 
% Revision 1.1  1991/06/24  20:57:37  kris
% Works with xy.doc [1.6] :-)