/* iphonedraw.pde simple example to show how an iphone with oscemote can act as an interface to a processing sketch this example allows the user to draw using the iphone multitouch interface - each finger is a new color speed of finger movement translates to brush size rob@rahji.com http://www.robduarte.com http://creativecommons.org/licenses/by/3.0/us/ */ import oscP5.*; import netP5.*; // make an array of colors - could be more color _red = color(255,0,0); color _yellow = color(0,255,0); color _green = color(0,0,255); color[] colors = {_red, _yellow, _green}; OscP5 oscP5; void setup() { size(600,600); frameRate(30); noStroke(); oscP5 = new OscP5(this,8000); // start listening for osc messages on port 8000 oscP5.plug(this,"tuio","/tuio/2Dcur","sifffff"); // call tuio() for multitouch osc msgs background(0); } // when a finger touches the iphone screen, draw a corresponding brushstroke public void tuio(String s, int i, float fx, float fy, float fvx, float fvy, float fa) { float maxvelocity = max(fvx,fvy); // fx/fy are location; fvx/fvy are speed of finger motion int dotsize = int(map(maxvelocity,0.0,1.0,0.0,20.0)); // fvx/fvy is between 0-1; brush size is 0-20 int coloridx = int(i) % 3; // choose a color number (0-3) from the "finger number" (i) fill(colors[coloridx]); ellipse( int(map(fx,0.0,1.0,0.0,600.0)), // fx is from 0-1, but screen width is up to 600 int(map(fy,0.0,1.0,0.0,600.0)), // fy is from 0-1, but screen width is up to 600 dotsize, // width dotsize // height - could be different for a more oval shape, instead of a circle ); } void draw() { }