Paint-the-Canvas Code
Below you can find the canvas code that you can run on the main laptop and project onto a big screen in the room. Note: replace the "localhost"
with the server address that you are using for your teaching. In the sense, check that the channel
import nl.tue.id.oocsi.*;
import java.util.*;
OOCSI oocsi;
List<Blob> list = new ArrayList<Blob>();
void setup() {
size(1280, 800);
background(0);
ellipseMode(CENTER);
noStroke();
smooth();
frameRate(60);
// connect to OOCSI
oocsi = new OOCSI(this, "paint-the-canvas-main", "localhost");
oocsi.subscribe("OOCSI_Tutorials_Paint_the_Canvas", "paintCanvas");
}
void draw() {
fill(0, 10);
rect(0, 0, width, height);
synchronized(list) {
for (Blob b : list) {
fill(b.r, b.g, b.b);
ellipse(b.x, b.y, b.c, b.c);
}
list.clear();
}
}
// use mouse click to erase the screen
void mousePressed() {
background(0);
}
void paintCanvas(OOCSIEvent event) {
Blob blob = new Blob();
blob.x = event.getInt("x", 0);
blob.y = event.getInt("y", 0);
if (blob.x > 0 || blob.y > 0) {
blob.r = event.getInt("colorR", color(100, 100, 100));
blob.g = event.getInt("colorG", color(100, 100, 100));
blob.b = event.getInt("colorB", color(100, 100, 100));
blob.c = event.getInt("diameter", 10);
synchronized(list) {
list.add(blob);
}
}
}
class Blob {
float x, y, r, g, b, c;
}