//www.alcys.com //Ce code fonctionne mieux avec OPENGL // //import processing.opengl.*; Bille[] billes; Terrain sol; Vecteur origine1; static int ordre=4; static float dT=0.07f; static float amorti=1f; static Vecteur pesanteur0=new Vecteur(0,-10000000,0); float angleX,angleY,bangleX,bangleY,limite,limita; Quat quatX,quatY,quatXY,quatXYc; //=================================================== void setup(){ size(800,400,P3D); //size(800,400,OPENGL); framerate(60); perspective(PI/3, width/height,10, 10000); origine1=new Vecteur(200,300,-2000); camera(origine1.x,-origine1.y/2,-origine1.z*2, origine1.x,-origine1.y*6.0f,origine1.z, 0.0, 1.0, 0.0); ellipseMode(CENTER); billes=new Bille[ordre]; sol=new Terrain(); billes[0]=new Bille(0,new Vecteur(2080,0,-210),new Vecteur(40,0,-190),400,sol); billes[1]=new Bille(1,new Vecteur(-1720,0,1800),new Vecteur(-90,0,140),400,sol); billes[2]=new Bille(2,new Vecteur(780,0,2070),new Vecteur(200,0,30),400,sol); billes[3]=new Bille(3,new Vecteur(1800,0,-1770),new Vecteur(250,0,-100),400,sol); limite=sol.ample-billes[0].r; rectMode(CENTER); } //=================================================== void draw(){ background(90,85,105);lights(); modifierparam(); sol.dessiner(); //dessin dans le repère R0 choquer(); for(int i=0;i