int i,j,nu,nv,itournant; float u,v, angleX,angleY,coef,angle,wnuxenia,hnvxenia; Vecteur[][] table; PImage xenia; void setup(){ size(480,480,P3D); nu=80; nv=40; frameRate(20); itournant=0; angle=0; table=new Vecteur[nu+1][nv+1]; remplir0(); xenia=loadImage("Brazilxenia.jpg"); wnuxenia=(float)xenia.width/nu; hnvxenia=(float)xenia.height/nv; } void draw(){ background(100.0f+40.0f*cos(angle*0.05f),40.0f+60.0f*sin(angle*0.2f),80.0f+30.0f*cos(angle/14.0f)); angle+=PI/30.0f; remplirTable(); positionner(); dessiner(); } void remplirTable(){ for (i=0;i<=nu;i++) { u=i * 4 * PI / nu; for (j=0;j<=nv;j++) { v=j / (float)nv; table[i][j].x=(v * cos(u) - 0.5 * v * v * cos(coef * u))*300; table[i][j].y=(- v * sin(u) - 0.5 * v * v * sin(coef * u))*300; table[i][j].z=(4 * pow(v,1.5) * cos((float)coef*2.0f/3.0f * u) / 3)*300; } } } void remplir0(){ for (i=0;i<=nu;i++) { for (j=0;j<=nv;j++) { table[i][j]=new Vecteur(0,0,0); } } } void dessiner(){ itournant=(itournant+1)%nu; fill(100,200,50); noStroke(); for (i=0;i