We closed this forum 18 June 2010. It has served us well since 2005 as the ALPHA forum did before it from 2002 to 2005. New discussions are ongoing at the new URL http://forum.processing.org. You'll need to sign up and get a new user account. We're sorry about that inconvenience, but we think it's better in the long run. The content on this forum will remain online.
IndexProgramming Questions & HelpPrograms › page turn/flip
Page Index Toggle Pages: 1
page turn/flip (Read 575 times)
page turn/flip
Feb 6th, 2010, 3:35pm
 
Hello!
Newbie here . I am trying to alter the "letter K" example to create a flash like page turn ---any help would be appreciated. Thanks
here is where I am so far/**
* Letter K
* by Peter Cho.
*
* Move the mouse across the screen to fold the "K".
*/

color backgroundColor;
color foregroundColor;
color foregroundColor2;

float px, py;
float pfx, pfy;
float pv2, pvx, pvy;
float pa2, pax, pay;
float pMass, pDrag;

void setup() {
 size(640, 480, P3D);
 noStroke();
 
 backgroundColor = color(134, 144, 154);
 foregroundColor = color(235, 235, 30);
 foregroundColor2 = color(240, 130, 20);
 initParticle(0.6, 0.9,  width/2, height/2);
 
}

void draw() {
 background(backgroundColor);
 
 pushMatrix();

 iterateParticle(0.15*(-px+mouseX), 0.15*(-py+(height-mouseY)));

 translate(width/2, height/2, 0);

 fill(foregroundColor);
 drawK();
 pushMatrix();
 
 translate(0, 0, 1);
 translate(0.75 * (px-width/2), -0.75 * (py-height/2), 0);
 translate(0.75 * (px-width/2), -0.75 * (py-height/2), 0);
 rotateZ(atan2(-(py-height/2), (px-width/2)) + PI/2);
 rotateX(PI);
 rotateZ(-(atan2(-(py-height/2), (px-width/2)) + PI/2));
 
 fill(foregroundColor2);
 drawKa();
 popMatrix();
 translate(0.75 * (px-width/2), -0.75 * (py-height/2), 2);
 rotateZ(atan2(-(py-height/2), (px-width/2)) + PI/2);
 
 fill(backgroundColor);
 beginShape(QUADS);
 vertex(-640, 0);
 vertex( 640, 0);
 vertex( 640, -360);
 vertex(-640, -360);
 endShape();
 popMatrix();

}

void initParticle(float _mass, float _drag, float ox, float oy) {
 px = ox;
 py = oy;
 pv2 = 0.0;
 pvx = 0.0;
 pvy = 0.0;
 pa2 = 0.0;
 pax = 0.0;
 pay = 0.0;
 pMass = _mass;
 pDrag = _drag;
}

void iterateParticle(float fkx, float fky) {
 // iterate for a single force acting on the particle
 pfx = fkx;
 pfy = fky;
 pa2 = pfx*pfx + pfy*pfy;
 if (pa2 < 0.0000001) {
   return;
 }
 pax = pfx/pMass;
 pay = pfy/pMass;
 pvx += pax;
 pvy += pay;
 pv2 = pvx*pvx + pvy*pvy;
 if (pv2 < 0.0000001) {
   return;
 }
 pvx *= (1.0 - pDrag);
 pvy *= (1.0 - pDrag);
 px += pvx;
 py += pvy;
}

void drawK() {
 pushMatrix();
 translate(10, 10);
 PImage a= loadImage("jelly.jpg");
 textureMode(NORMALIZED);
 beginShape(QUADS);
texture (a);
 vertex(0, 0, 0,0);
 vertex(200, 0, 0,1);
 vertex(200, 200, 1,1);
 vertex(0, 200, 0,1);
 endShape();
 //translate(10, 10);
 popMatrix();
}
void drawKa() {
 pushMatrix();
 translate(10, 10);
 PImage a= loadImage("eames.jpg");
 beginShape(QUADS);
 texture(a);
 vertex(0, 0, 0,0);
 vertex(200, 0, 200,0);
 vertex(200, 200, 200,200);
 vertex(0, 200, 0,200);
 endShape();
 //translate(10, 10);
 popMatrix();
}
Page Index Toggle Pages: 1