diff --git a/processing_LA.pde b/processing_LA.pde index bd3a508..ded8479 100644 --- a/processing_LA.pde +++ b/processing_LA.pde @@ -21,11 +21,13 @@ int xShift; int xEdge = 60; int yEdge = 30; int xEnd; -int yBottom = 370; +float[] xPos = {0, 0, 0, 0, 0, 0}; +int yBottom = 390; int yDiff; int yPos = yEdge; -float[] xPos = {0, 0, 0, 0, 0, 0}; +int ySave=yEdge; boolean textCovered; +boolean drawTime = true; //data to draw the graph @@ -33,7 +35,6 @@ boolean textCovered; int samples; int event; int initialState; -int save_initialState; boolean first = false; boolean dataComplete = false; //following data @@ -45,9 +46,345 @@ float[] xTime; //buttons and others +int button1X = 8; +int button2X = 8; +int button3X = 80; +int button4X = 200; +int button5X = 270; +int buttonY; int buttonH = 20; -int smallButtonW = 40; +int smallButtonW = 50; int bigButtonW = 100; +int textBoxH; +int immage = 1; +int corner = 10; + + + +void setup () { + p = new Serial(this, "com3", 9600); + p.bufferUntil('\n'); + + size(1000, 450); + background(black); + smooth(4); + + textBoxH = height -40; + buttonY = height -30; +} + + +void cleanScreen() { + + noStroke(); //no borders + fill(black); + rect(xEdge, 0, width, textBoxH); //cancel the graph + stroke(green); //border + Arrays.fill(xPos, 0); //reset start point of the graph + + if (graphShift==true) { + int b; + int mask = 1; + for (int n=0; n<6; n++) { + b = initialState & mask; + isLow[n] = !boolean (b); + mask <<= 1; + //println("islow: "+isLow[n]); + } + } +} + + +void draw () { + + if (dataComplete==true || graphShift==true) { + cleanScreen(); + pushMatrix(); //move the coordinate reference + translate(xEdge, 0); + for (int i=0; iyBottom-15 && mouseY button1X && mouseX buttonY && mouseY button2X && mouseX buttonY && mouseY button3X && mouseX buttonY && mouseY button5X && mouseX buttonY && mouseY button4X && mouseX buttonY && mouseY button2X && mouseX buttonY && mouseY button3X && mouseX buttonY && mouseY button5X && mouseX yBottom-15 && mouseY button1X && mouseX 0) + { + int i; + boolean drawLine = true; // alternate between dashes and gaps + + /* + Figure out x and y distances for each of the spacing values + I decided to trade memory for time; I'd rather allocate + a few dozen bytes than have to do a calculation every time + I draw. + */ + + for (i = 0; i < spacing.length; i++) + { + xSpacing[i] = lerp(0, (x1 - x0), spacing[i] / distance); + ySpacing[i] = lerp(0, (y1 - y0), spacing[i] / distance); + } + + i = 0; + while (drawn < distance) + { + if (drawLine) + { + line(x0, y0, x0 + xSpacing[i], y0 + ySpacing[i]); + } + x0 += xSpacing[i]; + y0 += ySpacing[i]; + /* Add distance "drawn" by this line or gap */ + drawn = drawn + mag(xSpacing[i], ySpacing[i]); + i = (i + 1) % spacing.length; // cycle through array + drawLine = !drawLine; // switch between dash and gap + } + } +} int boxH; int boxW;