import processing.opengl.*; PImage ab; float sid=500/sin(PI/5); float inc = TWO_PI/5; float phi=acos(-1/sqrt(5)); float scX=-cos(2*inc)*sid; float scY=-sin(2*inc)*sid; //PFont font; void setup(){ // size(600, 400, OPENGL); size(1280, 1024, OPENGL); // lights(); // lightSpecular(255, 255, 255); // directionalLight(204, 204, 204, 0, 0, -1); ambientLight(255, 255, 255); ab=loadImage("http://pikappa.ch/dadode/processing/dadode2/penta4.png"); //ab.mask(loadImage("http://pikappa.ch/dadode/processing/dadode2/penta2-mask.png")); // textureMode(IMAGE); // font = loadFont("CourierNewPSMT-48.vlw"); // textFont(font); //textMode(SCREEN); } void draw(){ background(255); // camera(mouseX*2-width/2, mouseY*2-height/2, 1200.0, // eyeX, eyeY, eyeZ camera( // 400,100,400,0,0, scX-sid*1/1.1*cos(PI*2*mouseX/width), scY-sid*1/1.1*sin(PI*2*mouseX/width), 400.0, // eyeX, eyeY, eyeZ scX+sid*1000*cos(PI*2*mouseX/width), scY+sid*1000*sin(PI*2*mouseX/width), -100000+1500000*(cos(PI*mouseY/height)), // centerX, centerY, centerZ 0,0,-1); // upX, upY, upZ // frustum(-1000, 1000, 100, 5000, -1000, 2000000.0); pushMatrix();translate(scX,scY,10);strokeWeight(10); stroke(#ff9900);line(0,0,0,200,0,0);stroke(#00ff00);line(0,0,0,0,200,0);stroke(#0000ff);line(0,0,0,0,0,200); stroke(#ff0000);sphere(10); popMatrix(); dadode(0); // dadode(1); // dadode(2); // println(str(mouseX)+"-x "+str(mouseY)+"-y"); } void dadode(int quale){ if(quale==1){pushMatrix();scale(1,1,-1);} if(quale==2){pushMatrix();scale(1,1,-1);translate(0,0,-2*tan(PI/2-PI/5)*1000*tan(asin(1/(2*sin(PI/5)))));} if(quale==3){pushMatrix();scale(1,1,-1);translate(0,0,-2*tan(PI/2-PI/5)*1000*tan(asin(1/(2*sin(PI/5)))));} // penta(0,#ee8822,#ffaa44,0,0,0,0); penta(#cc6600,#ee8822,#ffaa44,0,0,0,0); penta(#006600,#228822,#44aa44,0,0,0,-phi); penta(#228800,#44aa22,#66cc44,0,2*scY,PI*2/5,-phi); penta(#446600,#668822,#88aa44,scX+cos(inc)*sid,scY-sin(inc)*sid,PI*4/5,-phi); penta(#224400,#446622,#668844,scX+sid,scY,PI*6/5,-phi); penta(#115500,#337722,#559944,scX+cos(inc)*sid,scY+sin(inc)*sid,PI*8/5,-phi); // sopra pushMatrix();translate(scX,scY,tan(PI/2-PI/5)*1000*tan(asin(1/(2*sin(PI/5))))); rotateZ(PI*2/10);translate(-scX,-scY,0); penta(#003366,#225588,#4477aa,0,0,0,0); penta(#006699,#2288bb,#44aadd,0,0,0,phi); penta(#3399cc,#55bbee,#77ddff,0,2*scY,PI*2/5,phi); penta(#66cc99,#88eebb,#aaffdd,scX+cos(inc)*sid,scY-sin(inc)*sid,PI*4/5,phi); penta(#339966,#55bb88,#77ddaa,scX+sid,scY,PI*6/5,phi); penta(#228888,#44aaaa,#66cccc,scX+cos(inc)*sid,scY+sin(inc)*sid,PI*8/5,phi); if(quale>0){ popMatrix(); } popMatrix(); } void penta(int col,int col1,int col2,float trX, float trY, float rotZ, float rotY){ pushMatrix();translate(trX,trY,0);rotateZ(rotZ);rotateY(rotY); beginShape();texture(ab);noStroke(); // fill(col); for(float a=0;ainc*3;b=b-inc){ vertex(scX+cos(b)*sid/1.375,scY+sin(b)*sid/1.375,(.5*(rotY)+.5*(rotY==0?(col==#003366?-1:1):0)), 236+cos(b-inc/4)*140, 233+sin(b-inc/4)*140); } endShape(); beginShape();fill(col2);texture(ab); for(float b=9*inc;b>inc*3;b=b-inc){ vertex(scX+cos(b)*sid/2.00,scY+sin(b)*sid/2.00,(.7*(rotY)+.7*(rotY==0?(col==#003366?-1:1):0)), 236+cos(b-inc/4)*90, 233+sin(b-inc/4)*90); } endShape();*/ popMatrix(); }