1
15
16 import processing.candy.*;
17 import processing.xml.*;
18 import processing.video.*;
19
20
30 31
32 boolean debug = false; 33
34 SVG svgletter, nocolon;
35 SVG[] leg = new SVG[7];
36 SVG[] noleg = new SVG[7];
37
38 int drawx = 260;
39 int drawy = 320;
40
41 int[] lettermap = {
42 1,1,1,0,1,1,1, 43 0,0,1,1,1,1,1, 44 1,0,0,1,1,1,0, 45 0,1,1,1,1,0,1, 46 1,0,0,1,1,1,1, 47 1,0,0,0,1,1,1, 48 1,1,1,1,0,1,1, 49 0,1,1,0,1,1,1, 50 0,1,1,0,0,0,0, 51 0,1,1,1,1,0,0, 52 0,0,0,0,1,1,1, 53 0,0,0,1,1,1,0, 54 1,0,1,0,1,0,0, 55 0,0,1,0,1,0,1, 56 1,1,1,1,1,1,0, 57 1,1,0,0,1,1,1, 58 1,1,1,0,0,1,1, 59 0,0,0,0,1,0,1, 60 1,0,1,1,0,1,1, 61 0,0,0,1,1,1,1, 62 0,1,1,1,1,1,0, 63 0,0,1,1,1,0,0, 64 0,1,0,1,0,1,0, 65 0,1,1,0,1,1,1, 66 0,1,1,1,0,1,1, 67 1,1,0,1,1,0,1 68 };
69
70 BufferedReader reader;
71
72 void setup(){
73
74 randomSeed(second());
75
76 background(0);
77 size(1280,800);
78
79 80
81 nocolon = new SVG(this, "colon_off.svg");
82
83 svgletter = new SVG(this, "7segment.svg");
84 leg[0] = svgletter.get("a_on_"); noleg[0] = svgletter.get("a_off_");
85 leg[1] = svgletter.get("b_on_"); noleg[1] = svgletter.get("b_off_");
86 leg[2] = svgletter.get("c_on_"); noleg[2] = svgletter.get("c_off_");
87 leg[3] = svgletter.get("d_on_"); noleg[3] = svgletter.get("d_off_");
88 leg[4] = svgletter.get("e_on_"); noleg[4] = svgletter.get("e_off_");
89 leg[5] = svgletter.get("f_on_"); noleg[5] = svgletter.get("f_off_");
90 leg[6] = svgletter.get("g_on_"); noleg[6] = svgletter.get("g_off_");
91
92 reader = createReader("fourletters.txt");
93 }
94
95
96 void draw() {
97
98 int i = 0;
99 int charnum = 0;
100
101 delay(1000); 102 background(0);
103
104 try {
105
106 String line = reader.readLine();
107
108 if (line == null) { 109 noLoop();
110 111 }
112 else
113 {
114 nocolon.draw(600,260);
115 for (i=0; i < line.length(); i++) {
116 draw_letter(line.charAt(i),charnum++);
117 }
118 }
119
120 }
121 catch (IOException e) {
122 println("I/O error: " + e.toString());
123 e.printStackTrace();
124 }
125 126 }
127
128
129 130 void draw_letter(char letter, int position) {
131
132 133 int i = (letter-97)*7;
134 int x = drawx+(position*210); 135 if (position > 1) x += 62; 136 if (debug) print(letter + " (chr " + i + ") x=" + x + " y=" + drawy + " => ");
137
138 draw_leg( boolean(lettermap[i+0]), 0, x, drawy );
139 draw_leg( boolean(lettermap[i+1]), 1, x, drawy );
140 draw_leg( boolean(lettermap[i+2]), 2, x, drawy );
141 draw_leg( boolean(lettermap[i+3]), 3, x, drawy );
142 draw_leg( boolean(lettermap[i+4]), 4, x, drawy );
143 draw_leg( boolean(lettermap[i+5]), 5, x, drawy );
144 draw_leg( boolean(lettermap[i+6]), 6, x, drawy );
145
146 if (debug) println();
147 }
148
149
150 151 void draw_leg(boolean on, int legnum, int x, int y)
152 {
153 if (on) {
154 if (debug) print("1");
155 leg[legnum].draw(x,y);
156 } else {
157 if (debug) print("0");
158 noleg[legnum].draw(x,y);
159 }
160 }
161
162
163
171