-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathsketch.js
More file actions
249 lines (219 loc) · 21.8 KB
/
Copy pathsketch.js
File metadata and controls
249 lines (219 loc) · 21.8 KB
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
// Monoline vector fonts from the Tektronix 7000-series oscilloscope
// character generator EPROM readout board. Extracted from Holger's PDFs
// `Font_160-2997-00.pdf` and `Font_160-2997-01.pdf`, which reproduce
// Tektronix readout fonts 160-2997-00 (1984) and 160-2997-01 (1986).
//
// Background: https://w140.com/tekwiki/wiki/7000_series_readout_system.
// The source PDF streams store page-rotated line segments; the coordinates
// below are normalized to displayed glyph coordinates with positive Y down.
function setup() {
createCanvas(1024, 720);
pixelDensity(2);
buildGlyphMap(tektronix7000Font1984);
buildGlyphMap(tektronix7000Font1986);
}
function keyPressed() {
if (key === 's' || key === 'S') {
saveCanvas('tektronix_7000_fonts', 'png');
}
}
function draw() {
background('black');
strokeWeight(1.0);
strokeJoin(ROUND);
strokeCap(ROUND);
drawFontBlock(tektronix7000Font1984, 100, 125);
drawFontBlock(tektronix7000Font1986, 100, 425);
stroke("white");
drawString(tektronix7000Font1984, "HELLO WORLD", 455,79, 21, 0.9);
drawString(tektronix7000Font1986, "HELLO WORLD", 455,379, 21, 0.9);
}
function drawFontBlock(font, x, y) {
noStroke();
fill(128);
textFont('Arial');
textSize(15);
text(font.title, x, y - 28);
stroke('white');
noFill();
const TEKTRONIX_7000_SUPPORTED_CHARS = [
'ABCDEFGHIJKLM',
'NOPQRSTUVWXYZ',
'0123456789+-/',
'cdpmnμΩΔ<>↓'
];
const size = 42;
const spacing = 1.0
const lineHeight = 1.3;
let ty = y;
for (const row of TEKTRONIX_7000_SUPPORTED_CHARS) {
drawString(font, row, x, ty, size, spacing);
ty += size * lineHeight;
}
}
function buildGlyphMap(font) {
font.map = new Map();
for (const glyph of font.glyphs) {
if (!font.map.has(glyph.char)) {
font.map.set(glyph.char, glyph);
}
}
font.map.set(' ', { char: ' ', strokes: [] });
}
function getGlyph(font, ch) {
return font.map.get(ch);
}
function drawString(font, str, x, y, size, spacing = 1.15, lineHeight = 1.3) {
const sca = size / TEKTRONIX_7000_H;
const advancePx = TEKTRONIX_7000_ADVANCE * sca * spacing;
let cx = x;
let cy = y;
for (const ch of str) {
if (ch === '\n') {
cx = x;
cy += size * lineHeight;
continue;
}
drawGlyph(font, ch, cx, cy, size);
cx += advancePx;
}
}
function drawGlyph(font, ch, gx, gy, size) {
const glyph = getGlyph(font, ch);
if (!glyph) return;
const sca = size / TEKTRONIX_7000_H;
for (const stroke of glyph.strokes) {
if (!stroke.length) continue;
if (stroke.length === 2 && samePoint(stroke[0], stroke[1])) {
point(gx + stroke[0][0] * sca, gy + stroke[0][1] * sca);
continue;
}
beginShape();
for (const [px, py] of stroke) {
vertex(gx + px * sca, gy + py * sca);
}
endShape();
}
}
function samePoint(a, b) {
return a[0] === b[0] && a[1] === b[1];
}
const TEKTRONIX_7000_W = 170;
const TEKTRONIX_7000_H = 210;
const TEKTRONIX_7000_ADVANCE = 200;
const tektronix7000Font1984 = {
title: 'Tektronix 7000 Readout Font 160-2997-00 (1984)',
partNumber: '160-2997-00',
year: 1984,
glyphs: [
{"char":"A","strokes":[[[0,180],[60,0]],[[60,0],[120,180]],[[120,180],[60,0]],[[60,0],[0,180]],[[0,180],[60,0]],[[60,0],[120,180]],[[90,120],[30,120]]]},
{"char":"B","strokes":[[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,60]],[[120,60],[90,90]],[[90,90],[0,90]],[[0,90],[90,90]],[[90,90],[120,120]],[[120,120],[120,150]],[[120,150],[90,180]],[[90,180],[0,180]],[[0,180],[90,180]]]},
{"char":"C","strokes":[[[120,30],[90,0]],[[90,0],[30,0]],[[30,0],[0,30]],[[0,30],[0,150]],[[0,150],[0,30]],[[0,150],[30,180]],[[30,180],[90,180]],[[90,180],[120,150]]]},
{"char":"D","strokes":[[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[90,180]],[[90,180],[120,150]],[[120,150],[120,30]],[[120,30],[90,0]],[[90,0],[0,0]],[[0,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,150]],[[90,180],[0,180]]]},
{"char":"E","strokes":[[[0,180],[120,180]],[[120,180],[0,180]],[[0,180],[0,0]],[[0,0],[120,0]],[[120,0],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,90],[90,90]],[[90,90],[0,90]]]},
{"char":"F","strokes":[[[0,180],[0,90]],[[0,90],[0,0]],[[0,0],[120,0]],[[120,0],[0,0]],[[0,0],[0,90]],[[0,90],[90,90]],[[90,90],[0,90]],[[0,90],[0,180]]]},
{"char":"G","strokes":[[[120,30],[90,0]],[[90,0],[30,0]],[[30,0],[0,30]],[[0,30],[0,150]],[[0,150],[30,180]],[[30,180],[120,180]],[[120,180],[120,120]],[[120,120],[90,120]],[[120,180],[30,180]],[[0,150],[0,30]]]},
{"char":"H","strokes":[[[0,180],[0,90]],[[0,90],[120,90]],[[120,90],[120,180]],[[120,180],[120,0]],[[120,0],[120,90]],[[120,90],[0,90]],[[0,90],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[120,0],[120,180]]]},
{"char":"I","strokes":[[[30,180],[60,180]],[[60,180],[60,0]],[[60,0],[30,0]],[[90,0],[60,0]],[[60,0],[60,180]],[[90,180],[60,180]],[[60,180],[60,0]],[[60,0],[60,180]]]},
{"char":"J","strokes":[[[120,0],[120,150]],[[120,150],[120,0]],[[120,0],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]]]},
{"char":"K","strokes":[[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[120,180],[0,90]],[[0,90],[120,0]],[[120,0],[0,90]],[[0,90],[120,180]]]},
{"char":"L","strokes":[[[0,0],[0,180]],[[0,180],[120,180]],[[120,180],[0,180]],[[0,180],[0,0]],[[0,0],[0,180]]]},
{"char":"M","strokes":[[[0,180],[0,0]],[[0,0],[60,60]],[[60,60],[120,0]],[[120,0],[120,180]],[[120,180],[120,0]],[[120,0],[120,180]],[[120,0],[60,60]],[[60,60],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]]]},
{"char":"N","strokes":[[[0,180],[0,0]],[[0,0],[120,180]],[[120,180],[120,0]],[[120,0],[120,180]],[[120,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[120,180]],[[120,180],[120,0]]]},
{"char":"O","strokes":[[[0,30],[0,150]],[[0,150],[0,30]],[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]],[[120,150],[120,30]]]},
{"char":"P","strokes":[[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[90,0]],[[90,0],[0,0]],[[90,0],[120,30]],[[120,30],[120,60]],[[120,60],[90,90]],[[90,90],[0,90]],[[0,90],[90,90]]]},
{"char":"Q","strokes":[[[120,180],[60,150]],[[60,150],[120,180]],[[60,180],[30,180]],[[30,180],[0,150]],[[0,150],[0,30]],[[0,30],[0,150]],[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,120]],[[120,120],[60,180]]]},
{"char":"R","strokes":[[[0,0],[0,180]],[[0,180],[0,90]],[[0,90],[60,90]],[[60,90],[120,180]],[[120,180],[60,90]],[[60,90],[90,90]],[[90,90],[120,60]],[[120,60],[120,30]],[[120,30],[90,0]],[[90,0],[0,0]],[[0,0],[0,90]],[[0,0],[90,0]]]},
{"char":"S","strokes":[[[120,30],[90,0]],[[90,0],[30,0]],[[30,0],[0,30]],[[0,30],[0,60]],[[0,60],[30,90]],[[30,90],[90,90]],[[90,90],[120,120]],[[120,120],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]]]},
{"char":"T","strokes":[[[60,180],[60,0]],[[60,0],[0,0]],[[120,0],[60,0]],[[60,0],[60,180]],[[60,180],[60,0]]]},
{"char":"U","strokes":[[[0,0],[0,150]],[[0,150],[0,0]],[[0,0],[0,150]],[[0,150],[30,180]],[[30,180],[90,180]],[[90,180],[120,150]],[[120,150],[120,0]],[[120,0],[120,150]],[[120,150],[120,0]]]},
{"char":"V","strokes":[[[0,0],[60,180]],[[60,180],[120,0]],[[120,0],[60,180]],[[60,180],[0,0]],[[0,0],[60,180]],[[60,180],[120,0]]]},
{"char":"W","strokes":[[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[60,120]],[[60,120],[120,180]],[[120,180],[120,0]],[[120,0],[120,180]],[[120,180],[120,0]],[[120,180],[60,120]],[[60,120],[0,180]]]},
{"char":"X","strokes":[[[0,180],[120,0]],[[120,0],[0,180]],[[0,180],[120,0]],[[120,0],[0,180]],[[120,180],[0,0]],[[0,0],[120,180]],[[120,180],[0,0]],[[0,0],[120,180]]]},
{"char":"Y","strokes":[[[60,180],[60,90]],[[60,90],[0,0]],[[0,0],[60,90]],[[60,90],[120,0]],[[120,0],[60,90]],[[60,90],[60,180]]]},
{"char":"Z","strokes":[[[120,180],[0,180]],[[0,180],[120,0]],[[120,0],[0,0]],[[0,0],[120,0]],[[120,0],[0,180]],[[0,180],[120,180]],[[0,180],[120,0]]]},
{"char":"0","strokes":[[[0,30],[0,150]],[[0,150],[0,30]],[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]],[[120,150],[120,30]]]},
{"char":"1","strokes":[[[60,180],[60,0]],[[60,0],[30,30]],[[60,0],[60,180]],[[60,180],[30,180]],[[60,180],[90,180]],[[60,180],[60,0]]]},
{"char":"2","strokes":[[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,60]],[[120,60],[0,150]],[[0,150],[120,60]],[[120,60],[0,150]],[[0,150],[0,180]],[[0,180],[120,180]],[[120,180],[0,180]]]},
{"char":"3","strokes":[[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,60]],[[120,60],[90,90]],[[90,90],[60,90]],[[90,90],[120,120]],[[120,120],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]]]},
{"char":"4","strokes":[[[90,180],[90,0]],[[90,0],[0,120]],[[0,120],[120,120]],[[120,120],[0,120]],[[0,120],[90,0]],[[90,0],[90,180]],[[90,180],[90,0]],[[90,0],[0,120]],[[0,120],[120,120]]]},
{"char":"5","strokes":[[[0,0],[120,0]],[[120,0],[0,0]],[[0,0],[0,60]],[[0,60],[90,60]],[[90,60],[120,90]],[[120,90],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]]]},
{"char":"6","strokes":[[[120,30],[90,0]],[[90,0],[30,0]],[[30,0],[0,30]],[[0,30],[0,150]],[[0,150],[30,180]],[[30,180],[90,180]],[[90,180],[120,150]],[[120,150],[120,120]],[[120,120],[90,90]],[[90,90],[0,90]],[[0,90],[90,90]],[[0,150],[0,30]]]},
{"char":"7","strokes":[[[60,180],[120,0]],[[120,0],[0,0]],[[0,0],[120,0]],[[120,0],[60,180]],[[60,180],[120,0]]]},
{"char":"8","strokes":[[[30,90],[0,30]],[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[90,90]],[[90,90],[30,90]],[[30,90],[0,150]],[[0,150],[30,180]],[[30,180],[90,180]],[[90,180],[120,150]],[[120,150],[90,90]]]},
{"char":"9","strokes":[[[30,90],[120,90]],[[120,90],[30,90]],[[30,90],[0,60]],[[0,60],[0,30]],[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]],[[120,150],[120,30]]]},
{"char":"+","strokes":[[[60,30],[60,150]],[[60,150],[60,30]],[[0,90],[120,90]],[[120,90],[0,90]]]},
{"char":"-","strokes":[[[0,90],[120,90]],[[120,90],[0,90]]]},
{"char":"/","strokes":[[[0,180],[120,0]],[[120,0],[0,180]],[[0,180],[120,0]],[[120,0],[0,180]]]},
{"char":"c","strokes":[[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]],[[0,150],[0,90]],[[0,90],[30,60]],[[30,60],[90,60]],[[90,60],[120,90]]]},
{"char":"d","strokes":[[[120,180],[120,0]],[[120,0],[120,180]],[[120,180],[30,180]],[[30,180],[0,150]],[[0,150],[0,120]],[[0,120],[30,90]],[[30,90],[120,90]],[[120,90],[30,90]],[[120,180],[120,0]]]},
{"char":"p","strokes":[[[30,150],[90,150]],[[90,150],[120,120]],[[120,120],[120,90]],[[120,90],[90,60]],[[90,60],[30,60]],[[30,60],[30,210]],[[30,210],[30,60]]]},
{"char":"m","strokes":[[[0,180],[0,60]],[[0,60],[30,60]],[[30,60],[60,90]],[[60,90],[60,180]],[[60,180],[60,90]],[[60,90],[90,60]],[[90,60],[120,90]],[[120,90],[120,180]],[[120,180],[120,90]],[[0,60],[0,180]]]},
{"char":"n","strokes":[[[30,180],[30,60]],[[30,60],[30,180]],[[30,90],[90,60]],[[90,60],[120,90]],[[120,90],[120,180]],[[120,180],[120,90]]]},
{"char":"μ","strokes":[[[30,60],[30,180]],[[30,180],[0,210]],[[30,180],[30,150]],[[30,150],[90,150]],[[90,150],[120,120]],[[120,120],[120,60]],[[30,150],[30,60]]]},
{"char":"Ω","strokes":[[[0,180],[30,180]],[[30,180],[30,150]],[[30,150],[0,120]],[[0,120],[0,60]],[[0,60],[30,30]],[[30,30],[90,30]],[[90,30],[120,60]],[[120,60],[120,120]],[[120,120],[90,150]],[[90,150],[90,180]],[[90,180],[120,180]]]},
{"char":"Δ","strokes":[[[0,180],[60,0]],[[60,0],[120,180]],[[120,180],[0,180]],[[0,180],[60,0]],[[60,0],[120,180]],[[120,180],[0,180]],[[0,180],[120,180]],[[120,180],[60,0]],[[60,0],[0,180]]]},
{"char":"<","strokes":[[[90,180],[0,90]],[[0,90],[90,0]],[[90,0],[0,90]],[[0,90],[90,180]],[[90,180],[0,90]],[[0,90],[90,0]]]},
{"char":">","strokes":[[[30,0],[120,90]],[[120,90],[30,180]],[[30,180],[120,90]],[[120,90],[30,0]],[[30,0],[120,90]],[[120,90],[30,180]]]},
{"char":"↓","strokes":[[[30,150],[60,180]],[[60,180],[60,0]],[[60,0],[60,180]],[[60,180],[60,0]],[[90,150],[60,180]]]},
{"char":".","strokes":[[[0,210],[0,210]],[[0,210],[0,210]],[[0,210],[0,210]]]},
]
};
const tektronix7000Font1986 = {
title: 'Tektronix 7000 Readout Font 160-2997-01 (1986)',
partNumber: '160-2997-01',
year: 1986,
glyphs: [
{"char":"A","strokes":[[[60,0],[0,90]],[[0,90],[0,180]],[[0,180],[0,90]],[[0,90],[120,90]],[[120,90],[120,180]],[[120,180],[120,90]],[[120,90],[60,0]],[[60,0],[0,90]],[[0,90],[120,90]],[[120,90],[60,0]]]},
{"char":"B","strokes":[[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,60]],[[120,60],[90,90]],[[0,90],[90,90]],[[90,90],[120,120]],[[120,120],[120,150]],[[120,150],[90,180]],[[90,180],[0,180]],[[0,180],[0,0]],[[0,0],[0,180]]]},
{"char":"C","strokes":[[[120,30],[90,0]],[[90,0],[30,0]],[[30,0],[0,30]],[[0,30],[0,150]],[[0,30],[0,150]],[[0,150],[30,180]],[[30,180],[90,180]],[[90,180],[120,150]]]},
{"char":"D","strokes":[[[0,0],[0,180]],[[0,180],[60,180]],[[60,180],[120,150]],[[120,150],[120,30]],[[120,150],[120,30]],[[120,30],[60,0]],[[60,0],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]]]},
{"char":"E","strokes":[[[0,0],[0,180]],[[0,180],[120,180]],[[120,180],[0,180]],[[0,180],[0,90]],[[0,90],[90,90]],[[90,90],[0,90]],[[0,90],[0,0]],[[0,0],[120,0]],[[120,0],[0,0]],[[0,0],[0,180]]]},
{"char":"F","strokes":[[[0,180],[0,90]],[[0,90],[90,90]],[[90,90],[0,90]],[[0,90],[0,0]],[[0,0],[120,0]],[[120,0],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]]]},
{"char":"G","strokes":[[[120,30],[90,0]],[[90,0],[30,0]],[[30,0],[0,30]],[[0,30],[0,150]],[[0,30],[0,150]],[[0,150],[30,180]],[[30,180],[120,180]],[[120,180],[120,120]],[[120,120],[60,120]]]},
{"char":"H","strokes":[[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[0,90]],[[0,90],[120,90]],[[120,90],[120,0]],[[120,0],[120,180]],[[120,180],[120,0]],[[120,0],[120,180]],[[120,180],[120,90]],[[120,90],[0,90]],[[0,90],[0,180]]]},
{"char":"I","strokes":[[[60,0],[60,180]],[[60,180],[0,180]],[[0,180],[120,180]],[[120,180],[60,180]],[[60,180],[60,0]],[[60,0],[0,0]],[[0,0],[120,0]],[[120,0],[60,0]],[[60,0],[60,180]],[[60,180],[60,0]]]},
{"char":"J","strokes":[[[120,0],[120,150]],[[120,150],[120,0]],[[120,0],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]]]},
{"char":"K","strokes":[[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[0,180]],[[0,90],[120,0]],[[120,0],[0,90]],[[0,90],[120,180]],[[120,180],[0,90]]]},
{"char":"L","strokes":[[[0,0],[0,180]],[[0,180],[120,180]],[[120,180],[0,180]],[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]]]},
{"char":"M","strokes":[[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[60,90]],[[60,90],[120,0]],[[120,0],[120,180]],[[120,180],[120,0]],[[120,0],[120,180]],[[120,180],[120,0]],[[120,0],[60,90]],[[60,90],[0,0]]]},
{"char":"N","strokes":[[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[120,180]],[[120,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[120,0],[120,180]],[[120,180],[0,0]],[[0,0],[120,180]],[[120,180],[120,0]],[[120,0],[120,180]],[[120,180],[120,0]]]},
{"char":"O","strokes":[[[90,180],[30,180]],[[30,180],[0,150]],[[0,150],[0,30]],[[0,150],[0,30]],[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,150]],[[120,30],[120,150]],[[120,150],[90,180]]]},
{"char":"P","strokes":[[[90,0],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,60]],[[120,60],[90,90]],[[90,90],[0,90]],[[0,90],[90,90]]]},
{"char":"Q","strokes":[[[60,120],[90,150]],[[90,150],[60,180]],[[60,180],[30,180]],[[30,180],[0,150]],[[0,150],[0,30]],[[0,150],[0,30]],[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,120]],[[120,120],[90,150]],[[90,150],[120,180]]]},
{"char":"R","strokes":[[[90,0],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,60]],[[120,60],[90,90]],[[90,90],[0,90]],[[0,90],[60,90]],[[60,90],[120,180]],[[120,180],[60,90]]]},
{"char":"S","strokes":[[[120,30],[90,0]],[[90,0],[30,0]],[[30,0],[0,30]],[[0,30],[0,60]],[[0,60],[30,90]],[[30,90],[90,90]],[[90,90],[120,120]],[[120,120],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]]]},
{"char":"T","strokes":[[[60,0],[60,180]],[[60,180],[60,0]],[[60,0],[0,0]],[[0,0],[120,0]],[[120,0],[60,0]],[[60,0],[60,180]],[[60,180],[60,0]]]},
{"char":"U","strokes":[[[0,0],[0,150]],[[0,150],[0,0]],[[0,0],[0,150]],[[0,150],[30,180]],[[30,180],[90,180]],[[90,180],[120,150]],[[120,150],[120,0]],[[120,0],[120,150]],[[120,150],[120,0]]]},
{"char":"V","strokes":[[[0,0],[0,90]],[[0,90],[60,180]],[[60,180],[120,90]],[[120,90],[120,0]],[[120,0],[120,90]],[[120,90],[60,180]],[[60,180],[0,90]],[[0,90],[0,0]]]},
{"char":"W","strokes":[[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[0,0]],[[0,0],[0,180]],[[0,180],[60,90]],[[60,90],[120,180]],[[120,180],[120,0]],[[120,0],[120,180]],[[120,180],[120,0]],[[120,0],[120,180]],[[120,180],[60,90]],[[60,90],[0,180]]]},
{"char":"X","strokes":[[[0,180],[120,0]],[[120,0],[0,180]],[[0,180],[120,0]],[[120,0],[0,180]],[[120,180],[0,0]],[[0,0],[120,180]],[[120,180],[0,0]],[[0,0],[120,180]]]},
{"char":"Y","strokes":[[[60,180],[60,90]],[[60,90],[0,0]],[[0,0],[60,90]],[[60,90],[120,0]],[[120,0],[60,90]],[[60,90],[60,180]]]},
{"char":"Z","strokes":[[[120,0],[0,180]],[[0,180],[120,0]],[[120,0],[0,0]],[[0,0],[120,0]],[[120,0],[0,180]],[[0,180],[120,180]],[[120,180],[0,180]],[[0,180],[120,0]]]},
{"char":"0","strokes":[[[90,180],[30,180]],[[30,180],[0,150]],[[0,150],[0,30]],[[0,150],[0,30]],[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,150]],[[120,30],[120,150]],[[120,150],[90,180]]]},
{"char":"1","strokes":[[[60,0],[60,180]],[[60,180],[0,180]],[[0,180],[120,180]],[[120,180],[60,180]],[[60,180],[60,0]],[[60,0],[0,60]],[[0,60],[60,0]],[[60,0],[60,180]],[[60,180],[60,0]]]},
{"char":"2","strokes":[[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,60]],[[120,60],[0,150]],[[0,150],[120,60]],[[120,60],[0,150]],[[0,150],[0,180]],[[0,180],[120,180]],[[120,180],[0,180]]]},
{"char":"3","strokes":[[[0,30],[30,0]],[[30,0],[90,0]],[[90,0],[120,30]],[[120,30],[120,60]],[[120,60],[90,90]],[[60,90],[90,90]],[[90,90],[120,120]],[[120,120],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]]]},
{"char":"4","strokes":[[[90,0],[90,180]],[[90,180],[90,0]],[[90,0],[90,180]],[[90,180],[90,0]],[[90,0],[60,0]],[[60,0],[0,120]],[[0,120],[120,120]],[[120,120],[0,120]],[[0,120],[60,0]],[[60,0],[0,120]]]},
{"char":"5","strokes":[[[0,90],[30,0]],[[30,0],[120,0]],[[120,0],[30,0]],[[30,0],[0,90]],[[0,90],[60,60]],[[60,60],[120,90]],[[120,90],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]]]},
{"char":"6","strokes":[[[30,90],[90,90]],[[90,90],[120,120]],[[120,120],[120,150]],[[120,150],[90,180]],[[90,180],[30,180]],[[30,180],[0,150]],[[0,150],[0,120]],[[0,120],[120,0]],[[120,0],[0,120]],[[0,120],[120,0]],[[120,0],[0,120]]]},
{"char":"7","strokes":[[[120,0],[30,180]],[[30,180],[120,0]],[[120,0],[0,0]],[[0,0],[120,0]],[[120,0],[30,180]],[[30,180],[120,0]]]},
{"char":"8","strokes":[[[30,90],[0,120]],[[0,120],[0,150]],[[0,150],[60,180]],[[60,180],[120,150]],[[120,150],[120,120]],[[120,120],[90,90]],[[90,90],[30,90]],[[30,90],[0,60]],[[0,60],[0,30]],[[0,30],[60,0]],[[60,0],[120,30]],[[120,30],[120,60]],[[120,60],[90,90]]]},
{"char":"9","strokes":[[[120,60],[0,180]],[[0,180],[120,60]],[[120,60],[0,180]],[[0,180],[120,60]],[[120,60],[120,30]],[[120,30],[90,0]],[[90,0],[30,0]],[[30,0],[0,30]],[[0,30],[0,60]],[[0,60],[30,90]],[[30,90],[90,90]]]},
{"char":"+","strokes":[[[60,150],[60,30]],[[60,30],[60,90]],[[60,90],[0,90]],[[0,90],[120,90]],[[120,90],[60,90]],[[60,90],[60,150]]]},
{"char":"-","strokes":[[[0,90],[120,90]],[[120,90],[0,90]],[[0,90],[120,90]]]},
{"char":"/","strokes":[[[0,180],[120,0]],[[120,0],[0,180]],[[0,180],[120,0]],[[120,0],[0,180]]]},
{"char":"c","strokes":[[[120,90],[90,60]],[[90,60],[30,60]],[[30,60],[0,90]],[[0,90],[0,150]],[[0,150],[30,180]],[[30,180],[90,180]],[[90,180],[120,150]]]},
{"char":"d","strokes":[[[90,0],[90,180]],[[90,180],[90,0]],[[90,90],[30,90]],[[30,90],[0,120]],[[0,120],[0,150]],[[0,150],[30,180]],[[30,180],[90,180]],[[90,180],[90,0]],[[90,0],[90,180]]]},
{"char":"p","strokes":[[[0,60],[0,210]],[[0,210],[0,60]],[[0,60],[0,210]],[[0,210],[0,60]],[[0,60],[60,60]],[[60,60],[90,90]],[[90,90],[90,120]],[[90,120],[60,150]],[[60,150],[0,150]]]},
{"char":"m","strokes":[[[0,60],[0,180]],[[0,180],[0,90]],[[0,90],[30,60]],[[30,60],[60,90]],[[60,90],[60,180]],[[60,180],[60,90]],[[60,90],[90,60]],[[90,60],[120,90]],[[120,90],[120,180]],[[120,180],[120,90]]]},
{"char":"n","strokes":[[[0,60],[0,180]],[[0,180],[0,60]],[[0,90],[60,60]],[[60,60],[90,90]],[[90,90],[90,180]],[[90,180],[90,90]]]},
{"char":"μ","strokes":[[[30,60],[30,150]],[[30,150],[0,210]],[[0,210],[30,150]],[[30,150],[30,60]],[[30,60],[30,150]],[[30,150],[90,120]],[[90,120],[90,60]],[[90,60],[90,120]],[[90,120],[120,150]]]},
{"char":"Ω","strokes":[[[0,180],[30,180]],[[30,180],[30,150]],[[30,150],[0,120]],[[0,120],[0,60]],[[0,60],[30,30]],[[30,30],[90,30]],[[90,30],[120,60]],[[120,60],[120,120]],[[120,120],[90,150]],[[90,150],[90,180]],[[90,180],[120,180]]]},
{"char":"Δ","strokes":[[[0,180],[60,0]],[[60,0],[120,180]],[[120,180],[0,180]],[[0,180],[60,0]],[[60,0],[120,180]],[[120,180],[0,180]],[[0,180],[60,0]],[[60,0],[120,180]]]},
{"char":"<","strokes":[[[120,150],[0,90]],[[0,90],[120,30]],[[120,30],[0,90]],[[0,90],[120,150]],[[120,150],[0,90]],[[0,90],[120,30]]]},
{"char":">","strokes":[[[0,150],[120,90]],[[120,90],[0,30]],[[0,30],[120,90]],[[120,90],[0,150]],[[0,150],[120,90]],[[120,90],[0,30]]]},
{"char":"↓","strokes":[[[60,180],[60,0]],[[60,0],[60,180]],[[60,180],[0,120]],[[0,120],[60,180]],[[60,180],[120,120]],[[120,120],[60,180]],[[60,180],[60,0]],[[60,0],[60,180]]]},
{"char":".","strokes":[[[0,210],[0,210]],[[0,210],[0,210]],[[0,210],[0,210]]]}
]
};