Advertisement
letsgetprocessing

Rendering

Oct 19th, 2015
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.76 KB | None | 0 0
  1. float FPS = 30.0;
  2. float DURATION = 8.0;
  3. float N_FRAMES = DURATION * FPS;
  4. float SHAPE_SIZE = 400.0;
  5. color MAIN_COLOR = color(0);
  6. color BG_COLOR = color(255);
  7. boolean RECORDING = false;
  8.  
  9. float d = 10;
  10. float px[] = { -d,  d,  d, -d, -d,  d,  d, -d };
  11. float py[] = { -d, -d,  d,  d, -d, -d,  d,  d };
  12. float pz[] = { -d, -d, -d, -d,  d,  d,  d,  d };
  13.  
  14. float p2x[] = {0,0,0,0,0,0,0,0};
  15. float p2y[] = {0,0,0,0,0,0,0,0};
  16.  
  17. float r[] = {0,0,0};
  18.  
  19.  
  20. void drawCube()
  21. {
  22.   r[0]=r[0]+TWO_PI/N_FRAMES;
  23.   r[1]=r[1]+TWO_PI/N_FRAMES;
  24.   r[2]=r[2]+TWO_PI/N_FRAMES;
  25.   if (r[0] >= 360.0*PI/180.0) r[0] = 0;
  26.   if (r[1] >= 360.0*PI/180.0) r[1] = 0;
  27.   if (r[2] >= 360.0*PI/180.0) r[2] = 0;
  28.  
  29.   for (int i=0;i<8;i++)
  30.   {
  31.     float px2 = px[i];
  32.     float py2 = cos(r[0])*py[i] - sin(r[0])*pz[i];
  33.     float pz2 = sin(r[0])*py[i] + cos(r[0])*pz[i];
  34.  
  35.     float px3 = cos(r[1])*px2 + sin(r[1])*pz2;
  36.     float py3 = py2;
  37.     float pz3 = -sin(r[1])*px2 + cos(r[1])*pz2;
  38.  
  39.     float ax = cos(r[2])*px3 - sin(r[2])*py3;
  40.     float ay = sin(r[2])*px3 + cos(r[2])*py3;
  41.     float az = pz3-150;
  42.    
  43.     p2x[i] = width/2+ax*SHAPE_SIZE/az;
  44.     p2y[i] = height/2+ay*SHAPE_SIZE/az;
  45.   }
  46.  
  47.   for (int i=0;i<3;i++)
  48.   {
  49.     line(p2x[i],p2y[i],p2x[i+1],p2y[i+1]);
  50.     line(p2x[i+4],p2y[i+4],p2x[i+5],p2y[i+5]);
  51.     line(p2x[i],p2y[i],p2x[i+4],p2y[i+4]);
  52.   }    
  53.   line(p2x[3],p2y[3],p2x[0],p2y[0]);
  54.   line(p2x[7],p2y[7],p2x[4],p2y[4]);
  55.   line(p2x[3],p2y[3],p2x[7],p2y[7]);
  56. }
  57.  
  58. void setup()
  59. {
  60.   size(120, 120);
  61.   //size(120, 120, P2D);
  62.   //size(120, 120, P3D);
  63.   frameRate(FPS);
  64. }
  65.  
  66. void draw()
  67. {
  68.   background(BG_COLOR);
  69.   stroke(MAIN_COLOR);
  70.   noFill();
  71.   drawCube();
  72.  
  73.   if (RECORDING)
  74.   {
  75.     if (frameCount >= N_FRAMES)
  76.       exit();
  77.     saveFrame("data/P2FX2D/####.gif");
  78.   }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement