Skip to content

Instantly share code, notes, and snippets.

@bortels
Created October 31, 2011 17:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bortels/1328037 to your computer and use it in GitHub Desktop.
Save bortels/1328037 to your computer and use it in GitHub Desktop.
Data for the Hershey Simplex font
function drawchar(c, ox, oy)
ax=-1
ay=-1
bx=-1
by=-1
stroke(255,0,21,255)
strokewidth(3)
ch = font[c]
for p=1, ch.points do
ax=bx
ay=by
bx=ch.data[p*2-1]
by=ch.data[p*2]
draw=1
if ((ax==-1) and (ay==-1)) then draw=0 end
if ((bx==-1) and (by==-1)) then draw=0 end
if (draw>0) then
line(ox+ax, oy+ay, ox+bx, oy+by)
end
end
end
-- Font data From Hershey Simplex Font
-- http://paulbourke.net/dataformats/hershey/
font[" "] = { points=0, width=16, ascii=32, data={ } }
font["!"] = { points=8, width=10, ascii=33, data={ 5,21,5,7,-1,-1,5,2,4,1,5,0,6,1,5,2 } }
font["\""] = { points=5, width=16, ascii=34, data={ 4,21,4,14,-1,-1,12,21,12,14 } }
font["#"] = { points=11, width=21, ascii=35, data={ 11,25,4,-7,-1,-1,17,25,10,-7,-1,-1,4,12,18,12,-1,-1,3,6,17,6 } }
font["$"] = { points=26, width=20, ascii=36, data={ 8,25,8,-4,-1,-1,12,25,12,-4,-1,-1,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3 } }
font["%"] = { points=31, width=24, ascii=37, data={ 21,21,3,0,-1,-1,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,-1,-1,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7 } }
font["&"] = { points=34, width=26, ascii=38, data={ 23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2 } }
font["'"] = { points=7, width=10, ascii=39, data={ 5,19,4,20,5,21,6,20,6,18,5,16,4,15 } }
font["("] = { points=10, width=14, ascii=40, data={ 11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7 } }
font[")"] = { points=10, width=14, ascii=41, data={ 3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7 } }
font["*"] = { points=8, width=16, ascii=42, data={ 8,21,8,9,-1,-1,3,18,13,12,-1,-1,13,18,3,12 } }
font["+"] = { points=5, width=26, ascii=43, data={ 13,18,13,0,-1,-1,4,9,22,9 } }
font[","] = { points=8, width=10, ascii=44, data={ 6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4 } }
font["-"] = { points=2, width=26, ascii=45, data={ 4,9,22,9 } }
font["."] = { points=5, width=10, ascii=46, data={ 5,2,4,1,5,0,6,1,5,2 } }
font["/"] = { points=2, width=22, ascii=47, data={ 20,25,2,-7 } }
font["0"] = { points=17, width=20, ascii=48, data={ 9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21 } }
font["1"] = { points=4, width=20, ascii=49, data={ 6,17,8,18,11,21,11,0 } }
font["2"] = { points=14, width=20, ascii=50, data={ 4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0 } }
font["3"] = { points=15, width=20, ascii=51, data={ 5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4 } }
font["4"] = { points=6, width=20, ascii=52, data={ 13,21,3,7,18,7,-1,-1,13,21,13,0 } }
font["5"] = { points=17, width=20, ascii=53, data={ 15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4 } }
font["6"] = { points=23, width=20, ascii=54, data={ 16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7 } }
font["7"] = { points=5, width=20, ascii=55, data={ 17,21,7,0,-1,-1,3,21,17,21 } }
font["8"] = { points=29, width=20, ascii=56, data={ 8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21 } }
font["9"] = { points=23, width=20, ascii=57, data={ 16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3 } }
font[":"] = { points=11, width=10, ascii=58, data={ 5,14,4,13,5,12,6,13,5,14,-1,-1,5,2,4,1,5,0,6,1,5,2 } }
font[";"] = { points=14, width=10, ascii=59, data={ 5,14,4,13,5,12,6,13,5,14,-1,-1,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4 } }
font["<"] = { points=3, width=24, ascii=60, data={ 20,18,4,9,20,0 } }
font["="] = { points=5, width=26, ascii=61, data={ 4,12,22,12,-1,-1,4,6,22,6 } }
font[">"] = { points=3, width=24, ascii=62, data={ 4,18,20,9,4,0 } }
font["?"] = { points=20, width=18, ascii=63, data={ 3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2 } }
font["@"] = { points=55, width=27, ascii=64, data={ 18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5 } }
font["A"] = { points=8, width=18, ascii=65, data={ 9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7 } }
font["B"] = { points=23, width=21, ascii=66, data={ 4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0 } }
font["C"] = { points=18, width=21, ascii=67, data={ 18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5 } }
font["D"] = { points=15, width=21, ascii=68, data={ 4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0 } }
font["E"] = { points=11, width=19, ascii=69, data={ 4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0 } }
font["F"] = { points=8, width=18, ascii=70, data={ 4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11 } }
font["G"] = { points=22, width=21, ascii=71, data={ 18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8 } }
font["H"] = { points=8, width=22, ascii=72, data={ 4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11 } }
font["I"] = { points=2, width=8, ascii=73, data={ 4,21,4,0 } }
font["J"] = { points=10, width=16, ascii=74, data={ 12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7 } }
font["K"] = { points=8, width=21, ascii=75, data={ 4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0 } }
font["L"] = { points=5, width=17, ascii=76, data={ 4,21,4,0,-1,-1,4,0,16,0 } }
font["M"] = { points=11, width=24, ascii=77, data={ 4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0 } }
font["N"] = { points=8, width=22, ascii=78, data={ 4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0 } }
font["O"] = { points=21, width=22, ascii=79, data={ 9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21 } }
font["P"] = { points=13, width=21, ascii=80, data={ 4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10 } }
font["Q"] = { points=24, width=22, ascii=81, data={ 9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2 } }
font["R"] = { points=16, width=21, ascii=82, data={ 4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0 } }
font["S"] = { points=20, width=20, ascii=83, data={ 17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3 } }
font["T"] = { points=5, width=16, ascii=84, data={ 8,21,8,0,-1,-1,1,21,15,21 } }
font["U"] = { points=10, width=22, ascii=85, data={ 4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21 } }
font["V"] = { points=5, width=18, ascii=86, data={ 1,21,9,0,-1,-1,17,21,9,0 } }
font["W"] = { points=11, width=24, ascii=87, data={ 2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0 } }
font["X"] = { points=5, width=20, ascii=88, data={ 3,21,17,0,-1,-1,17,21,3,0 } }
font["Y"] = { points=6, width=18, ascii=89, data={ 1,21,9,11,9,0,-1,-1,17,21,9,11 } }
font["Z"] = { points=8, width=20, ascii=90, data={ 17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0 } }
font["["] = { points=11, width=14, ascii=91, data={ 4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7 } }
font["\\"] = { points=2, width=14, ascii=92, data={ 0,21,14,-3 } }
font["]"] = { points=11, width=14, ascii=93, data={ 9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7 } }
font["^"] = { points=10, width=16, ascii=94, data={ 6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0 } }
font["_"] = { points=2, width=16, ascii=95, data={ 0,-2,16,-2 } }
font["`"] = { points=7, width=10, ascii=96, data={ 6,21,5,20,4,18,4,16,5,15,6,16,5,17 } }
font["a"] = { points=17, width=19, ascii=97, data={ 15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3 } }
font["b"] = { points=17, width=19, ascii=98, data={ 4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3 } }
font["c"] = { points=14, width=18, ascii=99, data={ 15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3 } }
font["d"] = { points=17, width=19, ascii=100, data={ 15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3 } }
font["e"] = { points=17, width=18, ascii=101, data={ 3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3 } }
font["f"] = { points=8, width=12, ascii=102, data={ 10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14 } }
font["g"] = { points=22, width=19, ascii=103, data={ 15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3 } }
font["h"] = { points=10, width=19, ascii=104, data={ 4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0 } }
font["i"] = { points=8, width=8, ascii=105, data={ 3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0 } }
font["j"] = { points=11, width=10, ascii=106, data={ 5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7 } }
font["k"] = { points=8, width=17, ascii=107, data={ 4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0 } }
font["l"] = { points=2, width=8, ascii=108, data={ 4,21,4,0 } }
font["m"] = { points=18, width=30, ascii=109, data={ 4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0 } }
font["n"] = { points=10, width=19, ascii=110, data={ 4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0 } }
font["o"] = { points=17, width=19, ascii=111, data={ 8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14 } }
font["p"] = { points=17, width=19, ascii=112, data={ 4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3 } }
font["q"] = { points=17, width=19, ascii=113, data={ 15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3 } }
font["r"] = { points=8, width=13, ascii=114, data={ 4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14 } }
font["s"] = { points=17, width=17, ascii=115, data={ 14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3 } }
font["t"] = { points=8, width=12, ascii=116, data={ 5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14 } }
font["u"] = { points=10, width=19, ascii=117, data={ 4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0 } }
font["v"] = { points=5, width=16, ascii=118, data={ 2,14,8,0,-1,-1,14,14,8,0 } }
font["w"] = { points=11, width=22, ascii=119, data={ 3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0 } }
font["x"] = { points=5, width=17, ascii=120, data={ 3,14,14,0,-1,-1,14,14,3,0 } }
font["y"] = { points=9, width=16, ascii=121, data={ 2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7 } }
font["z"] = { points=8, width=17, ascii=122, data={ 14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0 } }
font["{"] = { points=39, width=14, ascii=123, data={ 9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7 } }
font["|"] = { points=2, width=8, ascii=124, data={ 4,25,4,-7 } }
font["}"] = { points=39, width=14, ascii=125, data={ 5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7 } }
font["~"] = { points=23, width=24, ascii=126, data={ 3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12 } }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment