Skip to content

Instantly share code, notes, and snippets.

@chuckwagoncomputing
Created February 25, 2015 23:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chuckwagoncomputing/3b952664ae01089ef07d to your computer and use it in GitHub Desktop.
Save chuckwagoncomputing/3b952664ae01089ef07d to your computer and use it in GitHub Desktop.
coordinate line font in javascript
var letters = {
' ' : [[50, 0, 50, 0]],
'!' : [[0, 45, 0, 50, 8],
[0, 10, 0, 35, 8]],
'"' : [[0, 10, 0, 20, 8],
[10, 10, 10, 20, 8]],
'#' : [[0, 35, 20, 35, 8],
[0, 25, 20, 25, 8],
[15, 20, 15, 40, 8],
[5, 20, 5, 40, 8]],
'$' : [[15, 15, 20, 20, 8],
[5, 15, 15, 15, 8],
[0, 20, 5, 15, 8],
[0, 20, 0, 25, 8],
[0, 25, 5, 30, 8],
[5, 30, 15, 30, 8],
[15, 30, 20, 35, 8],
[20, 35, 20, 40, 8],
[15, 45, 20, 40, 8],
[5, 45, 15, 45, 8],
[0, 40, 5, 45, 8],
[10, 10, 10, 50, 8]],
'%' : [[0, 15, 0, 20, 8],
[0, 15, 5, 10, 8],
[5, 10, 10, 10, 8],
[10, 10, 15, 15, 8],
[15, 15, 15, 20, 8],
[10, 25, 15, 20, 8],
[5, 25, 10, 25, 8],
[0, 20, 5, 25, 8],
[0, 50, 40, 10, 8],
[35, 50, 40, 45, 8],
[40, 40, 40, 45, 8],
[35, 35, 40, 40, 8],
[30, 35, 35, 35, 8],
[25, 40, 30, 35, 8],
[25, 40, 25, 45, 8],
[25, 45, 30, 50, 8],
[30, 50, 35, 50, 8]],
'&' : [[0, 45, 5, 50, 8],
[0, 15, 0, 25, 8],
[0, 15, 5, 10, 8],
[0, 35, 15, 20, 8],
[5, 50, 10, 50, 8],
[10, 50, 20, 40, 8],
[0, 25, 25, 50, 8],
[5, 10, 10, 10, 8],
[10, 10, 15, 15, 8],
[15, 15, 15, 20, 8],
[0, 35, 0, 45, 8]],
'(' : [[0, 45, 5, 50, 8],
[0, 15, 5, 10, 8],
[0, 15, 0, 45, 8]],
')' : [[0, 10, 5, 15, 8],
[5, 15, 5, 45, 8],
[0, 50, 5, 45, 8]],
'*' : [[0, 20, 20, 40, 8],
[0, 40, 20, 20, 8],
[0, 30, 20, 30, 8],
[10, 20, 10, 40, 8]],
'+' : [[0, 30, 20, 30, 8],
[10, 20, 10, 40, 8]],
',' : [[0, 60, 10, 50, 8]],
'-' : [[0, 30, 20, 30, 8]],
'.' : [[0, 50, 5, 50, 8]],
'/' : [[0, 45, 30, 15, 8]],
'0' : [[0, 45, 5, 50, 8],
[0, 15, 0, 45, 8],
[0, 15, 5, 10, 8],
[5, 10, 15, 10, 8],
[15, 10, 20, 15, 8],
[20, 15, 20, 45, 8],
[15, 50, 20, 45, 8],
[5, 50, 15, 50, 8],
[0, 40, 20, 20, 8]],
'1' : [[0, 18, 8, 10, 8],
[8, 10, 8, 50, 8],
[0, 50, 15, 50, 8]],
'2' : [[0, 15, 5, 10, 8],
[5, 10, 20, 10, 8],
[20, 10, 25, 15, 8],
[25, 15, 25, 25, 8],
[0, 50, 25, 25, 8],
[0, 50, 25, 50, 8]],
'3' : [[0, 15, 5, 10, 8],
[5, 10, 15, 10, 8],
[15, 10, 20, 15, 8],
[15, 50, 20, 45, 8],
[5, 50, 15, 50, 8],
[0, 45, 5, 50, 8],
[5, 28, 15, 28, 8],
[20, 15, 20, 23, 8],
[20, 33, 20, 45, 8],
[20, 33, 15, 28, 8],
[20, 23, 15, 28, 8]],
'4' : [[0, 35, 20, 10, 8],
[0, 35, 25, 35, 8],
[20, 10, 20, 50, 8]],
'5' : [[0, 10, 20, 10, 8],
[0, 10, 0, 30, 8],
[0, 30, 5, 25, 8],
[5, 25, 15, 25, 8],
[15, 25, 20, 30, 8],
[20, 30, 20, 45, 8],
[15, 50, 20, 45, 8],
[5, 50, 15, 50, 8],
[0, 45, 5, 50, 8]],
'6' : [[15, 10, 20, 15, 8],
[5, 10, 15, 10, 8],
[0, 15, 5, 10, 8],
[0, 15, 0, 45, 8],
[0, 45, 5, 50, 8],
[15, 28, 20, 33, 8],
[0, 28, 15, 28, 8],
[5, 50, 15, 50, 8],
[15, 50, 20, 45, 8],
[20, 33, 20, 45, 8]],
'7' : [[5, 50, 25, 10, 8],
[0, 10, 25, 10, 8]],
'8' : [[0, 45, 5, 50, 8],
[0, 37, 0, 45, 8],
[0, 37, 7, 30, 8],
[7, 30, 13, 30, 8],
[13, 30, 20, 37, 8],
[20, 37, 20, 45, 8],
[15, 50, 20, 45, 8],
[5, 50, 15, 50, 8],
[0, 23, 7, 30, 8],
[0, 15, 0, 23, 8],
[0, 15, 5, 10, 8],
[5, 10, 15, 10, 8],
[15, 10, 20, 15, 8],
[20, 15, 20, 23, 8],
[13, 30, 20, 23, 8]],
'9' : [[5, 50, 20, 30, 8],
[20, 15, 20, 30, 8],
[15, 10, 20, 15, 8],
[5, 10, 15, 10, 8],
[0, 15, 5, 10, 8],
[0, 15, 0, 25, 8],
[0, 25, 5, 30, 8],
[5, 30, 20, 30, 8]],
':' : [[0, 25, 5, 25, 8],
[0, 35, 5, 35, 8]],
';' : [[0, 50, 10, 40, 8],
[10, 25, 10, 30, 8]],
'<' : [[0, 30, 10, 20, 8],
[0, 30, 10, 40, 8]],
'=' : [[0, 25, 20, 25, 8],
[0, 35, 20, 35, 8]],
'>' : [[0, 20, 10, 30, 8],
[0, 40, 10, 30, 8]],
'?' : [[10, 30, 10, 35, 8],
[10, 45, 10, 50, 8],
[0, 15, 0, 20, 8],
[0, 15, 5, 10, 8],
[5, 10, 15, 10, 8],
[15, 10, 20, 15, 8],
[20, 15, 20, 20, 8],
[10, 30, 20, 20, 8]],
'@' : [[0, 10, 0, 40, 8],
[0, 40, 10, 50, 8],
[10, 50, 40, 50, 8],
[50, 35, 50, 10, 8],
[50, 10, 40, 0, 8],
[40, 0, 10, 0, 8],
[10, 0, 0, 10, 8],
[15, 20, 15, 30, 8],
[15, 30, 20, 35, 8],
[20, 35, 30, 35, 8],
[30, 35, 35, 30, 8],
[35, 30, 40, 35, 8],
[35, 30, 35, 15, 8],
[35, 20, 30, 15, 8],
[20, 15, 30, 15, 8],
[20, 15, 15, 20, 8],
[40, 35, 50, 35, 8]],
'A' : [[0, 20, 0, 50, 8],
[0, 20, 7, 10, 8],
[7, 10, 18, 10, 8],
[18, 10, 25, 20, 8],
[25, 20, 25, 50, 8],
[0, 30, 25, 30, 8]],
'B' : [[0, 50, 20, 50, 8],
[20, 50, 25, 45, 8],
[25, 33, 25, 45, 8],
[20, 28, 25, 33, 8],
[5, 28, 20, 28, 8],
[5, 10, 5, 50, 8],
[0, 10, 20, 10, 8],
[20, 10, 25, 15, 8],
[25, 15, 25, 23, 8],
[20, 28, 25, 23, 8]],
'C' : [[7, 50, 20, 50, 8],
[0, 43, 7, 50, 8],
[0, 17, 0, 43, 8],
[0, 17, 7, 10, 8],
[7, 10, 20, 10, 8]],
'D' : [[5, 10, 5, 50, 8],
[18, 10, 25, 17, 8],
[25, 17, 25, 43, 8],
[18, 50, 25, 43, 8],
[0, 50, 18, 50, 8],
[0, 10, 18, 10, 8]],
'E' : [[0, 28, 15, 28, 8],
[0, 50, 20, 50, 8],
[0, 10, 0, 50, 8],
[0, 10, 20, 10, 8]],
'F' : [[0, 10, 0, 50, 8],
[0, 10, 20, 10, 8],
[0, 28, 15, 28, 8]],
'G' : [[20, 10, 25, 15, 8],
[5, 10, 20, 10, 8],
[0, 15, 5, 10, 8],
[0, 15, 0, 45, 8],
[0, 45, 5, 50, 8],
[5, 50, 20, 50, 8],
[20, 50, 25, 45, 8],
[25, 35, 25, 45, 8],
[20, 30, 25, 35, 8],
[10, 30, 20, 30, 8]],
'H' : [[0, 10, 0, 50, 8],
[25, 10, 25, 50, 8],
[0, 30, 25, 30, 8]],
'I' : [[0, 10, 10, 10, 8],
[5, 10, 5, 50, 8],
[0, 50, 10, 50, 8]],
'J' : [[7, 10, 15, 10, 8],
[15, 10, 15, 45, 8],
[10, 50, 15, 45, 8],
[5, 50, 10, 50, 8],
[0, 45, 5, 50, 8],
[0, 45, 0, 40, 8]],
'K' : [[0, 10, 0, 50, 8],
[0, 30, 20, 10, 8],
[0, 30, 20, 50, 8]],
'L' : [[0, 10, 0, 50, 8],
[0, 50, 20, 50, 8]],
'M' : [[0, 10, 0, 50, 8],
[0, 10, 15, 30, 8],
[15, 30, 30, 10, 8],
[30, 10, 30, 50, 8]],
'N' : [[0, 10, 0, 50, 8],
[0, 10, 25, 50, 8],
[25, 10, 25, 50, 8]],
'O' : [[0, 15, 0, 45, 8],
[0, 15, 5, 10, 8],
[5, 10, 15, 10, 8],
[15, 10, 20, 15, 8],
[20, 15, 20, 45, 8],
[15, 50, 20, 45, 8],
[5, 50, 15, 50, 8],
[0, 45, 5, 50, 8]],
'P' : [[5, 10, 5, 50, 8],
[0, 10, 20, 10, 8],
[20, 10, 25, 15, 8],
[25, 15, 25, 25, 8],
[20, 30, 25, 25, 8],
[5, 30, 20, 30, 8]],
'Q' : [[0, 15, 0, 45, 8],
[0, 15, 5, 10, 8],
[5, 10, 15, 10, 8],
[15, 10, 20, 15, 8],
[20, 15, 20, 40, 8],
[10, 50, 20, 40, 8],
[5, 50, 10, 50, 8],
[0, 45, 5, 50, 8],
[10, 35, 20, 50, 8]],
'R' : [[0, 10, 20, 10, 8],
[20, 10, 25, 15, 8],
[25, 15, 25, 25, 8],
[20, 30, 25, 25, 8],
[5, 30, 20, 30, 8],
[5, 10, 5, 50, 8],
[13, 30, 25, 50, 8]],
'S' : [[20, 10, 25, 15, 8],
[5, 10, 20, 10, 8],
[0, 15, 5, 10, 8],
[0, 15, 0, 25, 8],
[0, 25, 5, 30, 8],
[5, 30, 20, 30, 8],
[20, 30, 25, 35, 8],
[25, 35, 25, 45, 8],
[20, 50, 25, 45, 8],
[5, 50, 20, 50, 8],
[0, 45, 5, 50, 8]],
'T' : [[0, 10, 20, 10, 8],
[10, 10, 10, 50, 8]],
'U' : [[0, 10, 0, 45, 8],
[0, 45, 5, 50, 8],
[5, 50, 15, 50, 8],
[15, 50, 20, 45, 8],
[20, 10, 20, 45, 8]],
'V' : [[0, 10, 10, 50, 8],
[10, 50, 20, 10, 8]],
'W' : [[0, 10, 0, 30, 8],
[0, 30, 5, 50, 8],
[5, 50, 15, 30, 8],
[15, 30, 25, 50, 8],
[25, 50, 30, 30, 8],
[30, 30, 30, 10, 8]],
'X' : [[0, 50, 25, 10, 8],
[0, 10, 25, 50, 8]],
'Y' : [[0, 10, 10, 30, 8],
[10, 30, 20, 10, 8],
[10, 30, 10, 50, 8]],
'Z' : [[0, 10, 25, 10, 8],
[0, 50, 25, 10, 8],
[0, 50, 25, 50, 8]],
'^' : [[0, 15, 5, 10, 8],
[5, 10, 10, 15, 8]],
'_' : [[0, 50, 20, 50, 8]],
'[' : [[0, 10, 5, 10, 8],
[0, 10, 0, 50, 8],
[0, 50, 5, 50, 8]],
']' : [[0, 10, 5, 10, 8],
[5, 10, 5, 50, 8],
[0, 50, 5, 50, 8]],
'a' : [[15, 30, 20, 35, 8],
[5, 30, 15, 30, 8],
[0, 35, 5, 30, 8],
[0, 35, 0, 45, 8],
[0, 45, 5, 50, 8],
[20, 30, 20, 45, 8],
[20, 45, 25, 50, 8],
[5, 50, 15, 50, 8],
[15, 50, 20, 45, 8]],
'b' : [[0, 10, 0, 50, 8],
[0, 45, 5, 50, 8],
[5, 50, 15, 50, 8],
[15, 50, 20, 45, 8],
[20, 35, 20, 45, 8],
[15, 30, 20, 35, 8],
[5, 30, 15, 30, 8],
[0, 35, 5, 30, 8]],
'c' : [[5, 30, 20, 30, 8],
[0, 35, 5, 30, 8],
[0, 35, 0, 45, 8],
[0, 45, 5, 50, 8],
[5, 50, 20, 50, 8]],
'd' : [[20, 10, 20, 50, 8],
[15, 50, 20, 45, 8],
[5, 50, 15, 50, 8],
[0, 45, 5, 50, 8],
[0, 35, 0, 45, 8],
[0, 35, 5, 30, 8],
[5, 30, 15, 30, 8],
[15, 30, 20, 35, 8]],
'e' : [[5, 50, 20, 50, 8],
[0, 45, 5, 50, 8],
[0, 35, 0, 45, 8],
[0, 35, 5, 30, 8],
[5, 30, 15, 30, 8],
[15, 30, 20, 35, 8],
[0, 40, 20, 40, 8],
[20, 40, 20, 35, 8]],
'f' : [[5, 15, 5, 50, 8],
[5, 15, 10, 10, 8],
[10, 10, 15, 10, 8],
[0, 30, 10, 30, 8]],
'g' : [[15, 30, 20, 35, 8],
[5, 30, 15, 30, 8],
[0, 35, 5, 30, 8],
[0, 35, 0, 45, 8],
[0, 45, 5, 50, 8],
[5, 50, 15, 50, 8],
[15, 50, 20, 45, 8],
[0, 60, 5, 65, 8],
[5, 65, 15, 65, 8],
[15, 65, 20, 60, 8],
[20, 30, 20, 60, 8]],
'h' : [[0, 10, 0, 50, 8],
[0, 35, 5, 30, 8],
[5, 30, 15, 30, 8],
[15, 30, 20, 35, 8],
[20, 35, 20, 50, 8]],
'i' : [[0, 20, 0, 21, 10],
[0, 35, 0, 50, 8]],
'j' : [[5, 20, 5, 21, 10],
[5, 35, 5, 60, 8],
[0, 65, 5, 60, 8]],
'k' : [[0, 10, 0, 50, 8],
[0, 35, 15, 50, 8],
[0, 35, 10, 25, 8]],
'l' : [[0, 10, 0, 45, 8],
[0, 45, 5, 50, 8]],
'm' : [[5, 35, 5, 50, 8],
[5, 35, 10, 30, 8],
[10, 30, 15, 30, 8],
[15, 30, 20, 35, 8],
[20, 35, 20, 50, 8],
[20, 35, 25, 30, 8],
[25, 30, 30, 30, 8],
[30, 30, 35, 35, 8],
[35, 35, 35, 50, 8],
[0, 30, 5, 35, 8]],
'n' : [[5, 35, 5, 50, 8],
[5, 35, 10, 30, 8],
[10, 30, 15, 30, 8],
[15, 30, 20, 35, 8],
[20, 35, 20, 50, 8],
[0, 30, 5, 35, 8]],
'o' : [[0, 35, 0, 45, 8],
[0, 35, 5, 30, 8],
[5, 30, 15, 30, 8],
[15, 30, 20, 35, 8],
[20, 35, 20, 45, 8],
[15, 50, 20, 45, 8],
[5, 50, 15, 50, 8],
[0, 45, 5, 50, 8]],
'p' : [[5, 35, 5, 65, 8],
[0, 30, 5, 35, 8],
[5, 35, 10, 30, 8],
[10, 30, 20, 30, 8],
[20, 30, 25, 35, 8],
[25, 35, 25, 45, 8],
[20, 50, 25, 45, 8],
[10, 50, 20, 50, 8],
[5, 45, 10, 50, 8]],
'q' : [[20, 35, 20, 65, 8],
[15, 30, 20, 35, 8],
[5, 30, 15, 30, 8],
[0, 35, 5, 30, 8],
[0, 35, 0, 45, 8],
[0, 45, 5, 50, 8],
[5, 50, 15, 50, 8],
[15, 50, 20, 45, 8]],
'r' : [[5, 35, 5, 50, 8],
[5, 35, 10, 30, 8],
[10, 30, 20, 30, 8],
[0, 30, 5, 35, 8]],
's' : [[5, 50, 20, 50, 8],
[20, 50, 25, 45, 8],
[20, 40, 25, 45, 8],
[5, 40, 20, 40, 8],
[0, 35, 5, 40, 8],
[0, 35, 5, 30, 8],
[5, 30, 20, 30, 8],
[20, 30, 25, 35, 8],
[0, 45, 5, 50, 8]],
't' : [[5, 10, 5, 45, 8],
[5, 45, 10, 50, 8],
[0, 25, 10, 25, 8]],
'u' : [[0, 30, 0, 45, 8],
[0, 45, 5, 50, 8],
[5, 50, 15, 50, 8],
[15, 50, 20, 45, 8],
[20, 30, 20, 45, 8]],
'v' : [[0, 30, 10, 50, 8],
[20, 30, 10, 50, 8]],
'w' : [[0, 30, 0, 45, 8],
[0, 45, 5, 50, 8],
[5, 50, 10, 50, 8],
[10, 50, 15, 45, 8],
[15, 30, 15, 45, 8],
[15, 45, 20, 50, 8],
[20, 50, 25, 50, 8],
[25, 50, 30, 45, 8],
[30, 30, 30, 45, 8]],
'x' : [[0, 30, 20, 50, 8],
[0, 50, 20, 30, 8]],
'y' : [[0, 30, 0, 45, 8],
[0, 45, 5, 50, 8],
[20, 30, 20, 60, 8],
[15, 65, 20, 60, 8],
[5, 65, 15, 65, 8],
[0, 60, 5, 65, 8],
[5, 50, 15, 50, 8],
[15, 50, 20, 45, 8]],
'z' : [[0, 30, 20, 30, 8],
[0, 50, 20, 30, 8],
[0, 50, 20, 50, 8]],
'{' : [[5, 15, 10, 10, 8],
[5, 15, 5, 25, 8],
[0, 30, 5, 25, 8],
[0, 30, 5, 35, 8],
[5, 35, 5, 45, 8],
[5, 45, 10, 50, 8]],
'|' : [[0, 10, 0, 50, 8]],
'}' : [[0, 10, 5, 15, 8],
[5, 15, 5, 25, 8],
[5, 25, 10, 30, 8],
[5, 35, 10, 30, 8],
[5, 35, 5, 45, 8],
[0, 50, 5, 45, 8]],
'~' : [[0, 35, 5, 30, 8],
[5, 30, 10, 30, 8],
[10, 30, 15, 35, 8],
[15, 35, 20, 35, 8],
[20, 35, 25, 30, 8]]
};
function drawText(text) {
var position = 0;
for (var f = 0; f < text.length; f += 1) {
var greatestx = 0;
for (var d = 0; d < letters[text[f]].length; d += 1) {
if (letters[text[f]][d][0] > greatestx) {
greatestx = letters[text[f]][d][0];
}
if (letters[text[f]][d][2] > greatestx) {
greatestx = letters[text[f]][d][2];
}
drawLine(letters[text[f]][d][0] + position, letters[text[f]][d][1], letters[text[f]][d][2] + position, letters[text[f]][d][3]);
}
position += greatestx + 5;
greatestx = 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment