Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float FPS = 30.0;
- float DURATION = 8.0;
- float N_FRAMES = DURATION * FPS;
- float SHAPE_SIZE = 400.0;
- color MAIN_COLOR = color(0);
- color BG_COLOR = color(255);
- boolean RECORDING = false;
- float d = 10;
- float px[] = { -d, d, d, -d, -d, d, d, -d };
- float py[] = { -d, -d, d, d, -d, -d, d, d };
- float pz[] = { -d, -d, -d, -d, d, d, d, d };
- float p2x[] = {0,0,0,0,0,0,0,0};
- float p2y[] = {0,0,0,0,0,0,0,0};
- float r[] = {0,0,0};
- void drawCube()
- {
- r[0]=r[0]+TWO_PI/N_FRAMES;
- r[1]=r[1]+TWO_PI/N_FRAMES;
- r[2]=r[2]+TWO_PI/N_FRAMES;
- if (r[0] >= 360.0*PI/180.0) r[0] = 0;
- if (r[1] >= 360.0*PI/180.0) r[1] = 0;
- if (r[2] >= 360.0*PI/180.0) r[2] = 0;
- for (int i=0;i<8;i++)
- {
- float px2 = px[i];
- float py2 = cos(r[0])*py[i] - sin(r[0])*pz[i];
- float pz2 = sin(r[0])*py[i] + cos(r[0])*pz[i];
- float px3 = cos(r[1])*px2 + sin(r[1])*pz2;
- float py3 = py2;
- float pz3 = -sin(r[1])*px2 + cos(r[1])*pz2;
- float ax = cos(r[2])*px3 - sin(r[2])*py3;
- float ay = sin(r[2])*px3 + cos(r[2])*py3;
- float az = pz3-150;
- p2x[i] = width/2+ax*SHAPE_SIZE/az;
- p2y[i] = height/2+ay*SHAPE_SIZE/az;
- }
- for (int i=0;i<3;i++)
- {
- line(p2x[i],p2y[i],p2x[i+1],p2y[i+1]);
- line(p2x[i+4],p2y[i+4],p2x[i+5],p2y[i+5]);
- line(p2x[i],p2y[i],p2x[i+4],p2y[i+4]);
- }
- line(p2x[3],p2y[3],p2x[0],p2y[0]);
- line(p2x[7],p2y[7],p2x[4],p2y[4]);
- line(p2x[3],p2y[3],p2x[7],p2y[7]);
- }
- void setup()
- {
- size(120, 120);
- //size(120, 120, P2D);
- //size(120, 120, P3D);
- frameRate(FPS);
- }
- void draw()
- {
- background(BG_COLOR);
- stroke(MAIN_COLOR);
- noFill();
- drawCube();
- if (RECORDING)
- {
- if (frameCount >= N_FRAMES)
- exit();
- saveFrame("data/P2FX2D/####.gif");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement