Advertisement
aroxalot

Simulation of a universe in processing/Java

Feb 28th, 2015
786
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.35 KB | None | 0 0
  1.  
  2. import processing.opengl.*;
  3.  
  4. int aCount = 3;
  5. int dim = 150;
  6. float XYdir = 0;
  7.  
  8.  
  9. boolean matter[][][][] = new boolean[aCount][dim+1][dim+1][dim+1];
  10.  
  11. void setup()  {
  12.  
  13.   size(displayWidth,displayHeight,OPENGL);
  14.   initUniverse();
  15. }
  16.  
  17. void draw()  {
  18.  
  19.  
  20.   background(0);
  21.   XYdir++;
  22.  
  23.   camera( dim*3, (dim/2)*5 + (cos(radians(XYdir)) * -dim*8), (dim/2)*5 + (sin(radians(XYdir)) * -dim*8), dim*3, (dim/2)*5, (dim/2)*5, 1, 0, 0);
  24.   drawUniverse();
  25. }
  26.  
  27. void drawUniverse()  {
  28.  
  29.   for(int i = 0; i <= dim; i++)  {
  30.    
  31.     for(int j = 0; j <= dim; j++)  {
  32.      
  33.       for(int t = 0; t <= dim; t++)  {
  34.        
  35.         if(matter[0][i][j][t] == true && matter[1][i][j][t] == true)  {
  36.          
  37.           matter[1][i][j][t] = false;
  38.           matter[0][i][j][t] = false;
  39.           matter[2][i][j][t] = true;
  40.         }else if(matter[1][i][j][t] == true && matter[2][i][j][t] == true)  {
  41.          
  42.           matter[1][i][j][t] = false;
  43.           matter[2][i][j][t] = false;
  44.           matter[0][i][j][t] = true;
  45.         }else if(matter[0][i][j][t] == true && matter[2][i][j][t] == true)  {
  46.          
  47.           matter[0][i][j][t] = false;
  48.           matter[2][i][j][t] = false;
  49.           matter[1][i][j][t] = true;
  50.         }
  51.        
  52.         int pos1 = (int)random(-2,2);
  53.         int pos2 = (int)random(-2,2);
  54.         int pos3 = (int)random(-2,2);
  55.        
  56.         if(i + pos1 < dim && j + pos2 < dim && t + pos3 < dim)  {
  57.          
  58.           if(i + pos1 > -1 && j + pos2 > -1 && t + pos3 > -1)  {
  59.            
  60.            
  61.               matter[0][i + pos1][j + pos2][t + pos3] = matter[0][i][j][t];
  62.              
  63.               matter[1][i + pos1][j + pos2][t + pos3] = matter[1][i][j][t];
  64.              
  65.               matter[2][i + pos1][j + pos2][t + pos3] = matter[2][i][j][t];
  66.            
  67.           }
  68.         }
  69.        
  70.         if(matter[0][i][j][t] == true)  {
  71.          
  72.           fill(255,0,0);
  73.          
  74.           pushMatrix();
  75.           translate(i*5,j*5,t*5);
  76.           rotateX(radians(45));
  77.          
  78.           rotateX(radians(45));
  79.           box(5);
  80.           popMatrix();
  81.         }
  82.        
  83.         if(matter[1][i][j][t] == true)  {
  84.          
  85.           fill(0,255,0);
  86.          
  87.           pushMatrix();
  88.           translate(i*5,j*5,t*5);
  89.           rotateX(radians(45));
  90.          
  91.           rotateX(radians(45));
  92.           box(5);
  93.           popMatrix();
  94.         }
  95.        
  96.         if(matter[2][i][j][t] == true)  {
  97.          
  98.           fill(0,0,255);
  99.          
  100.           pushMatrix();
  101.           translate(i*5,j*5,t*5);
  102.           rotateX(radians(45));
  103.          
  104.           rotateX(radians(45));
  105.           box(5);
  106.           popMatrix();
  107.         }
  108.       }
  109.     }
  110.   }
  111. }
  112.  
  113. void initUniverse()  {
  114.  
  115.   for(int i = 0; i <= dim; i++)  {
  116.    
  117.     for(int j = 0; j <= dim; j++)  {
  118.      
  119.       for(int t = 0; t <= dim; t++)  {      
  120.        
  121.         matter[0][i][j][t] = false;
  122.         matter[1][i][j][t] = false;
  123.         matter[2][i][j][t] = false;
  124.        
  125.         int iii = (int)random( 1000);
  126.        
  127.         if(iii == 1)  {
  128.          
  129.           matter[0][i][j][t] = true;
  130.         }
  131.        
  132.         if(iii == 2)  {
  133.          
  134.           matter[1][i][j][t] = true;
  135.         }
  136.        
  137.         if(iii == 3)  {
  138.          
  139.           matter[2][i][j][t] = true;
  140.         }
  141.       }
  142.     }
  143.   }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement