// low budget tron / 08*2008 / emoc / codelab.fr import processing.opengl.*; float pz = 0; float rot_X = -3.2; float fov; float fovmod = 12.17; float ecart; float vitesse = 3; void setup() { size(600, 400, OPENGL); } void draw() { background(0); // view fov = 0.7 + 0.4 * cos(fovmod); float cameraZ = (height/2.0) / tan(PI * fov / 360.0); perspective(fov, 1.5, cameraZ/200.0, cameraZ*10.0); camera(-400*cos(rot_X), 400, -400+pz, 0,10,pz, 0,-1,0); // infinite grid stroke(255); strokeWeight(1); for (int i = -10000; i < 10001; i = i+100) { line(-10000, 0, i + ecart*100, 10000, 0, i + ecart*100); // plan Z line(i, 0, -10000 + ecart*100, i, 0, 10000 + ecart*100); // plan X, Y est le plan d'élévation } // line noFill(); stroke(255,0,0); strokeWeight(3/fov*3); line(0,10,-10000,0,10,pz); // movement pz = pz + 5 + vitesse; ecart = floor(pz/100); } void keyPressed() { if (key == '+') { if (vitesse < 20) vitesse += 1; } if (key == '-') { if (vitesse > 1) vitesse -= 1; } if (key == CODED) { if (keyCode == UP) { fovmod += 0.1; } if (keyCode == DOWN) { fovmod -= 0.1; } if (keyCode == LEFT) { rot_X += 0.05; } if (keyCode == RIGHT) { rot_X -= 0.05;} } }