|
namtes
|
 |
« en: Julio 06, 2010, 23:58 h. » |
|
Hola
Alguien me puede ayudar con este sketch? Lo que quiero es que los cubos que forman la palabra tenga el mismo movimiento que los cubos que se mueven.
Gracias
// imports ================================================ int a; float valor=1; // import processing.video.*; //MovieMaker mm;
float rota; atom[] atoms; int ATOMS=355; float R=300.0; float aumenta = 0.0; /** PeasyCam **/ import peasy.*; // variables ============================================= // Camera PeasyCam cam; int bufferSize = 1256; int bufferWritePosition = 0; String[] buffer = new String[bufferSize]; float factorBetweenBoxes = 3; int factorBetweenLetters = 30; float angle = 0.0; float angleAdd = 0.009; // letterSpacing: use -6 for 'W' to put more space after the W int letterSpacing = 0; // functions ============================================= void setup () { size (800,500, P3D); cam = new PeasyCam(this, 400.0 ); cam.pan(70,400); noSmooth(); fill(color(254,0,0)); stroke(color(25,25,0));
reset();
} /////////////////// void reset() { atoms=new atom[ATOMS]; for (int i=0;i<ATOMS;i++) { atoms=new atom(); } //background(255); }
////////////////// void draw () { background(111); //rotateY(angle); WordPaint("hola"); angle += angleAdd; ///////////////////////////
translate (width/2,height/2,-100); rotateX(HALF_PI); //aumenta= aumenta+ .001; rotateY((float)frameCount/100.0);
R=250.0+(200.0*(float)Math.cos(frameCount/100.0));
///////////////////////////////// for (int i=0;i<ATOMS;i++) { atoms.mueve(); atoms.draw(); }
} /* void keyPressed() { if (key == CODED) { if (keyCode == UP) { factorBetweenBoxes-=1; } else if (keyCode == DOWN) { factorBetweenBoxes+=1; } if (keyCode == LEFT) { factorBetweenLetters-=1; } else if (keyCode == RIGHT) { factorBetweenLetters+=1; } } else { // not coded if (key == ' ') { if (angleAdd==0.0) { angleAdd=0.009; } else { angleAdd=0.0; }; } // SPACE else if (key == 'm') { angleAdd=0.009; } } // else not coded } // func */ void WordPaint(String InputWordOfFunction) {
final int BoxWidth=3; letterSpacing=0; for (int i = 0; i < InputWordOfFunction.length(); i = i+1) { buffer = new String[bufferSize]; bufferWritePosition=0; letterSpacing=0; keyPaintHelper(InputWordOfFunction.charAt(i)); for (int j = 0; j < bufferWritePosition; j = j+1) { for (int k = 0; k < buffer[j].length(); k = k+1) { if (buffer[j].charAt(k) == '*') { pushMatrix(); // factorBetweenBoxes=factorBetweenBoxes; translate((j*factorBetweenBoxes)+(i*factorBetweenLetters)-10+letterSpacing, 300-(k*factorBetweenBoxes)+100, 200); // rotateY(0.3); // ;-) box (BoxWidth,BoxWidth,BoxWidth+BoxWidth+BoxWidth); popMatrix(); } } } } } void keyPaintHelper(char InputKeyOfFunction) { char k = Character.toUpperCase(InputKeyOfFunction); letterSpacing=0; switch(k) { case 'A': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ***** "; buffer[bufferWritePosition + 1] = " ******** "; buffer[bufferWritePosition + 2] = " *** ***"; buffer[bufferWritePosition + 3] = " *** ***"; buffer[bufferWritePosition + 4] = " **********"; buffer[bufferWritePosition + 5] = " **********"; buffer[bufferWritePosition + 6] = " *** ***"; bufferWritePosition += 7; } break; case 'B': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " * * * "; buffer[bufferWritePosition + 3] = " * * * "; buffer[bufferWritePosition + 4] = " ******* "; buffer[bufferWritePosition + 5] = " ** ** "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'C': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ***** "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " * * "; buffer[bufferWritePosition + 3] = " * * "; buffer[bufferWritePosition + 4] = " * * "; buffer[bufferWritePosition + 5] = " * * "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'D': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " * * "; buffer[bufferWritePosition + 3] = " ** ** "; buffer[bufferWritePosition + 4] = " ***** "; buffer[bufferWritePosition + 5] = " *** "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'E': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " * * * "; buffer[bufferWritePosition + 3] = " * * * "; buffer[bufferWritePosition + 4] = " * * * "; buffer[bufferWritePosition + 5] = " * * "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'F': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " * * "; buffer[bufferWritePosition + 3] = " * * "; buffer[bufferWritePosition + 4] = " * * "; buffer[bufferWritePosition + 5] = " * "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'G': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ***** "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " ** * * "; buffer[bufferWritePosition + 3] = " ** * * "; buffer[bufferWritePosition + 4] = " **** ** "; buffer[bufferWritePosition + 5] = " **** * "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'H': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " * "; buffer[bufferWritePosition + 3] = " * "; buffer[bufferWritePosition + 4] = " ******* "; buffer[bufferWritePosition + 5] = " ******* "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'I': if (thereAreEnoughSlots(6)) { buffer[bufferWritePosition + 0] = " "; buffer[bufferWritePosition + 1] = " * * "; buffer[bufferWritePosition + 2] = " ******* "; buffer[bufferWritePosition + 3] = " ******* "; buffer[bufferWritePosition + 4] = " * * "; buffer[bufferWritePosition + 5] = " "; bufferWritePosition += 6; } break; case 'J': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ** "; buffer[bufferWritePosition + 1] = " *** "; buffer[bufferWritePosition + 2] = " * * "; buffer[bufferWritePosition + 3] = " ******* "; buffer[bufferWritePosition + 4] = " ****** "; buffer[bufferWritePosition + 5] = " * "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'K': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " *** "; buffer[bufferWritePosition + 3] = " ** ** "; buffer[bufferWritePosition + 4] = " ** ** "; buffer[bufferWritePosition + 5] = " * * "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'L': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " * "; buffer[bufferWritePosition + 3] = " * "; buffer[bufferWritePosition + 4] = " * "; buffer[bufferWritePosition + 5] = " * "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'M': if (thereAreEnoughSlots(9)) { buffer[bufferWritePosition + 0] = " ****** "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " **** "; buffer[bufferWritePosition + 3] = " **** "; buffer[bufferWritePosition + 4] = " **** "; buffer[bufferWritePosition + 5] = " **** "; buffer[bufferWritePosition + 6] = " ******* "; buffer[bufferWritePosition + 7] = " ****** "; buffer[bufferWritePosition + 8] = " "; bufferWritePosition += 9; } break; case 'N': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " ** "; buffer[bufferWritePosition + 3] = " ** "; buffer[bufferWritePosition + 4] = " ******* "; buffer[bufferWritePosition + 5] = " ******* "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'O': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ***** "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " * * "; buffer[bufferWritePosition + 3] = " * * "; buffer[bufferWritePosition + 4] = " ******* "; buffer[bufferWritePosition + 5] = " ***** "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'P': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " * * "; buffer[bufferWritePosition + 3] = " * * "; buffer[bufferWritePosition + 4] = " **** "; buffer[bufferWritePosition + 5] = " ** "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'Q': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ***** "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " ** * "; buffer[bufferWritePosition + 3] = " ** * "; buffer[bufferWritePosition + 4] = "******** "; buffer[bufferWritePosition + 5] = "* ***** "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'R': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ******* "; buffer[bufferWritePosition + 1] = " ******* "; buffer[bufferWritePosition + 2] = " ** * "; buffer[bufferWritePosition + 3] = " *** * "; buffer[bufferWritePosition + 4] = " ** **** "; buffer[bufferWritePosition + 5] = " * ** "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; case 'S': if (thereAreEnoughSlots(7)) { buffer[bufferWritePosition + 0] = " ** ** "; buffer[bufferWritePosition + 1] = " ** **** "; buffer[bufferWritePosition + 2] = " * * * "; buffer[bufferWritePosition + 3] = " * * * "; buffer[bufferWritePosition + 4] = " **** ** "; buffer[bufferWritePosition + 5] = " ** ** "; buffer[bufferWritePosition + 6] = " "; bufferWritePosition += 7; } break; default:
} } boolean thereAreEnoughSlots(int slotsRequired) { /* if((bufferSize - bufferWritePosition) <= slotsRequired + 4) { return false; } else return true; */ return true; }
class atom { public float lat,lon; private float dlat,dlon; private color col; private float velo=1/200.0;
float factorBetweenBoxes ;
public atom() { lat=random (-TWO_PI,TWO_PI); lon=random(0,PI); dlat=random(-PI,TWO_PI)*velo; dlon=random(0,TWO_PI)*velo; col=color(random(0,255),random(0,255),random(0,255)); } public atom(float _lat,float _lon) { lat=_lat; lon=_lon; dlat=random(0,PI)*velo; dlon=random(0,TWO_PI)*velo; col=color(random(0,255),random(0,255),random(0,255)); } public void mueve(){
lat+=velo*noise(dlat*0.005+frameCount,dlon*0.005+frameCount); lon+=velo*noise(dlat*0.6+frameCount,dlon*0.006+frameCount); } public void draw() { //noStroke(); stroke(0,140); //color(255); //noFill (); float x=R*( cos(lat*valor)*cos(lon*valor)); float y=R*(cos(lat)*sin(lon)); float z=R*sin(lat*noise (valor)); // factorBetweenBoxes = x; valor = valor+.00001; //println (valor); if (valor >= 5){ valor = valor*-1; } pushMatrix(); translate(x,y,z); //noStroke (); // stroke (0,46); fill(#F70FD1); rotateZ (TWO_PI+ rota); rotateY (TWO_PI+ rota); rotateX (TWO_PI+ rota); rota = rota + .0001; box(40,10,20); popMatrix();
pushMatrix (); translate(x,-y,z); rotateX (TWO_PI- rota/10); rotateY (TWO_PI- rota); // fill(#2C21CE); // box (40,10,20); //text("information", x, 60); popMatrix (); }
}
|