SHARE
TWEET

Untitled

a guest Apr 21st, 2019 91 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. float d = 10;
  2. float d2 = d * 5;
  3. float d1 = d2 / 2;
  4. float d3 = d * 2.5;
  5. int centroX = width/2;
  6. int centroY = height/2;
  7. float angulo = 20;
  8. float diamanteAngulo = 20;
  9. int raio = 500;
  10. float cX = 0;
  11. float cY = 0;
  12. float cZ = 200; //was 50
  13. float a=10;
  14.  
  15.  
  16. float f = 15;
  17. float f2= f *1.5;
  18. float f0= f/2;
  19.  
  20. float pX, pY, pZ;
  21.  
  22. float anguloTampa = 0;
  23.  
  24. void setup(){
  25.   size(800, 600, P3D);
  26.   smooth();
  27.   noStroke();
  28. }
  29.  
  30. void diamante( int d) {
  31.  
  32.    translate(0, 0, pZ);
  33.    rotateZ(diamanteAngulo);
  34.    
  35.    
  36.   //fill(200,0,0);
  37.   beginShape(TRIANGLE);       // (-3, -1), (-1,-3)
  38.     vertex(-d3, -d, 0);
  39.     vertex(-d, -d3, 0);
  40.     vertex(-f, -f, a);
  41.   endShape();
  42.  
  43.   //fill(200,0,0);
  44.   beginShape(TRIANGLE);      
  45.     vertex(-f, -f, a);
  46.     vertex(0, -f2, a);
  47.     vertex(-d, -d3, 0);
  48.   endShape();
  49.  
  50.  
  51.   //fill(200,100,0);
  52.   beginShape(TRIANGLE);      //(-1,-3), (1,-3)
  53.     vertex(-d, -d3, 0);
  54.     vertex(d, -d3, 0);
  55.     vertex(0, -f2, a);
  56.   endShape();
  57.  
  58.   //fill(200,150,0);
  59.   beginShape(TRIANGLE);      
  60.     vertex(0, -f2, a);
  61.     vertex(f, -f, a);
  62.     vertex(d, -d3, 0);
  63.   endShape();
  64.  
  65.   //fill(200,200,0);
  66.   beginShape(TRIANGLE);      //(1,-3), (3,-1)
  67.     vertex(d, -d3, 0);
  68.     vertex(d3, -d, 0);
  69.     vertex(f, -f, a);
  70.   endShape();
  71.  
  72.   //fill(200,200,0);
  73.   beginShape(TRIANGLE);      
  74.     vertex(f, -f, a);
  75.     vertex(f2, 0, a);
  76.     vertex(d3, -d, 0);
  77.   endShape();
  78.  
  79.   //fill(100,200,0);
  80.   beginShape(TRIANGLE);      //(3,-1), (3,1)
  81.     vertex(d3, -d, 0);
  82.     vertex(d3, d, 0);
  83.     vertex(f2, 0, a);
  84.   endShape();
  85.  
  86.   //fill(50,200,0);
  87.   beginShape(TRIANGLE);      
  88.     vertex(f2, 0, a);
  89.     vertex(f, f, a);
  90.     vertex(d3, d, 0);
  91.   endShape();
  92.  
  93.   //fill(0,200,0);
  94.   beginShape(TRIANGLE);      //(3,1), (1,3)
  95.     vertex(d3, d, 0);
  96.     vertex(d, d3, 0);
  97.     vertex(f, f, a);
  98.   endShape();
  99.  
  100.   //fill(0,200,50);
  101.   beginShape(TRIANGLE);      
  102.     vertex(f, f, a);
  103.     vertex(0, f2, a);
  104.     vertex(d, d3, 0);
  105.   endShape();
  106.  
  107.   //fill(0,200,100);
  108.   beginShape(TRIANGLE);      //(1,3), (-1,3)
  109.     vertex(d, d3, 0);
  110.     vertex(-d, d3, 0);
  111.     vertex(0, f2, a);
  112.   endShape();
  113.  
  114.    //fill(0,100,250);
  115.   beginShape(TRIANGLE);    
  116.     vertex(0, f2, a);
  117.     vertex(-f, f, a);
  118.     vertex(-d, d3, 0);
  119.   endShape();
  120.  
  121.  
  122.   //fill(0,100,200);
  123.   beginShape(TRIANGLE);      //(-1,3), (-3,1)
  124.     vertex(-d, d3, 0);
  125.     vertex(-d3, d, 0);
  126.     vertex(-f, f, a);
  127.   endShape();
  128.  
  129.    //fill(0,100,200);
  130.   beginShape(TRIANGLE);      
  131.     vertex(-f, f, a);
  132.     vertex(-f2, 0, a);
  133.     vertex(-d3, d, 0);
  134.   endShape();
  135.  
  136.   //fill(200,0,200);
  137.   beginShape(TRIANGLE);      //(-3,1), (-3,-1)
  138.     vertex(-d3, d, 0);
  139.     vertex(-d3, -d, 0);
  140.     vertex(-f2, 0, a);
  141.   endShape();
  142.  
  143.   //fill(200,0,200);
  144.   beginShape(TRIANGLE);      //last one
  145.     vertex(-f, -f, a);
  146.     vertex(-f2, 0, a);
  147.     vertex(-d3, -d, 0);
  148.   endShape();
  149.  
  150.   //fill(50, 200, 50);
  151.   beginShape();         //top
  152.     vertex(-f, -f, a);
  153.     vertex(0, -f2, a);
  154.     vertex(f, -f, a);
  155.     vertex(f2, 0, a);
  156.     vertex(f, f, a);
  157.     vertex( 0, f2, a);
  158.     vertex(-f, f, a);
  159.     vertex(-f2, 0, a);
  160.   endShape();
  161.  
  162.  
  163.  
  164.   //fill(0,200,0);  
  165.   //BOTTOM
  166.   beginShape(TRIANGLE);
  167.     vertex(d, d3, 0);
  168.     vertex(d3, d, 0);
  169.     vertex(0, 0, -2*d3);
  170.   endShape();
  171.  
  172.   beginShape(TRIANGLE);
  173.     vertex(d3, d, 0);
  174.     vertex(d3, -d, 0);
  175.     vertex(0, 0, -2*d3);
  176.   endShape();
  177.  
  178.   beginShape(TRIANGLE);
  179.     vertex(d3, -d, 0);
  180.     vertex(d, -d3, 0);
  181.     vertex(0, 0, -2*d3);
  182.   endShape();
  183.  
  184.   beginShape(TRIANGLE);
  185.     vertex(d, -d3, 0);
  186.     vertex(-d, -d3, 0);
  187.     vertex(0, 0, -2*d3);
  188.   endShape();
  189.  
  190.   beginShape(TRIANGLE);
  191.     vertex(-d, -d3, 0);
  192.     vertex(-d3, -d, 0);
  193.     vertex(0, 0, -2*d3);
  194.   endShape();
  195.  
  196.   beginShape(TRIANGLE);
  197.     vertex(-d3, -d, 0);
  198.     vertex(-d3, d, 0);
  199.     vertex(0, 0, -2*d3);
  200.   endShape();
  201.  
  202.   beginShape(TRIANGLE);
  203.     vertex(-d3, d, 0);
  204.     vertex(-d, d3, 0);
  205.     vertex(0, 0, -2*d3);
  206.   endShape();
  207.  
  208.   beginShape(TRIANGLE);
  209.     vertex(-d, d3, 0);
  210.     vertex(d, d3, 0);
  211.     vertex(0, 0, -2*d3);
  212.   endShape();
  213.  
  214.  }
  215.  
  216.  
  217.  
  218. void draw(){
  219.  
  220.   ambientLight(180, 180, 180);
  221.   pointLight(51, 102, 126, 0, 0, 50);
  222.   lightSpecular(0, 0, 200);
  223.  
  224.  
  225.   float cX = centroX + (raio * cos(angulo));
  226.   float cY = centroY - (raio * sin(angulo));
  227.  
  228.   camera(cX, cY, cZ, centroX, centroY, 0, 0, 0, -1);
  229.  
  230.   background(100, 120, 200);
  231.  
  232.   translate(centroX, centroY);    
  233.  
  234.  
  235.   PImage boxtex = loadImage("box.jpg");
  236.   PImage boxhalf = loadImage("boxhalf.jpg");
  237.   PImage floortex = loadImage("floor.jpg");
  238.   PImage walltex = loadImage("wall.jpg");
  239.  
  240.  
  241.   //-------ROOM--------
  242.   pushMatrix();
  243.   textureMode(NORMAL);
  244.   textureWrap(REPEAT);
  245.  
  246.   beginShape(QUADS); //FLOOR
  247.     texture(floortex);
  248.     vertex(-d2*10, -d2*10, -d2 - 1, 0, 5);
  249.     vertex(-d2*10,  d2*10, -d2 - 1, 0, 0);
  250.     vertex( d2*10,  d2*10, -d2 - 1, 5, 0);
  251.     vertex( d2*10, -d2*10, -d2 - 1, 5, 5);
  252.   endShape(CLOSE);
  253.  
  254.  
  255.   beginShape(QUADS);  //WALL 1
  256.     texture(walltex);
  257.     vertex( d2*10, -d2*10,  d2*20, 3, 3);
  258.     vertex( d2*10,  d2*10,  d2*20, 0, 3);
  259.     vertex( d2*10,  d2*10, -d2 - 1, 0, 0);
  260.     vertex( d2*10, -d2*10, -d2 - 1, 3, 0);
  261.   endShape(CLOSE);
  262.  
  263.   beginShape(QUADS); //WALL 2
  264.     texture(walltex);
  265.     vertex( d2*10, d2*10,  d2*20, 0, 3);
  266.     vertex( d2*10, d2*10, -d2 - 1, 0, 0);
  267.     vertex(-d2*10, d2*10, -d2 - 1, 3, 0);
  268.     vertex(-d2*10, d2*10,  d2*20, 3, 3);
  269.   endShape();
  270.  
  271.   beginShape(QUADS); //WALL 3
  272.     texture(walltex);
  273.     vertex(-d2*10, -d2*10,  d2*20, 3, 3);
  274.     vertex(-d2*10,  d2*10,  d2*20, 0, 3);
  275.     vertex(-d2*10,  d2*10, -d2 - 1, 0, 0);
  276.     vertex(-d2*10, -d2*10, -d2 - 1, 3, 0);
  277.   endShape(CLOSE);
  278.  
  279.   beginShape(QUADS); //WALL 4
  280.     texture(walltex);
  281.     vertex( d2*10, -d2*10,  d2*20, 0, 3);
  282.     vertex( d2*10, -d2*10, -d2 - 1, 0, 0);
  283.     vertex(-d2*10, -d2*10, -d2 - 1, 3, 0);
  284.     vertex(-d2*10, -d2*10,  d2*20, 3, 3);
  285.   endShape();
  286.  
  287.   popMatrix();
  288.  
  289.  
  290.   //----END OF ROOM ------
  291.  
  292.   pushMatrix();
  293.   diamante(10);
  294.   popMatrix();
  295.  
  296.   line(0, -1000, 0, 0, 1000, 0);
  297.  
  298.   //-------CAIXA--------
  299.  
  300.   pushMatrix();
  301.    
  302.   translate(-d2, 0, d2);
  303.  
  304.   rotateY(anguloTampa);
  305.  
  306.   translate(d2, 0, -d2);
  307.  
  308.   beginShape(QUADS);  //cima L
  309.     texture(boxhalf);
  310.     vertex(-d2, -d2, d2, 0, 0);
  311.     vertex( 0, -d2,  d2, 1, 0);
  312.     vertex( 0,  d2,  d2, 1, 1);
  313.     vertex(-d2, d2,  d2, 0, 1);
  314.   endShape();
  315.  
  316.   popMatrix();
  317.  
  318.  
  319.   pushMatrix();
  320.  
  321.   translate(d2, 0, d2);
  322.  
  323.   rotateY(anguloTampa * -1);
  324.  
  325.   translate(-d2, 0, -d2);
  326.  
  327.   beginShape(QUADS);  //cima R
  328.     texture(boxhalf);
  329.     vertex(d2, -d2, d2, 0, 0);
  330.     vertex( 0, -d2, d2, 1, 0);
  331.     vertex( 0,  d2, d2, 1, 1);
  332.     vertex( d2, d2, d2, 0, 1);
  333.   endShape();
  334.  
  335.  
  336.   popMatrix();
  337.   textureMode(NORMAL);
  338.  
  339.   pushMatrix();
  340.  
  341.   beginShape(QUADS);  // direita
  342.     texture(boxtex);
  343.     vertex( d2, -d2,  d2, 1, 1);
  344.     vertex( d2,  d2,  d2, 0, 1);
  345.     vertex( d2,  d2, -d2, 0, 0);
  346.     vertex( d2, -d2, -d2, 1, 0);
  347.   endShape(CLOSE);
  348.  
  349.   beginShape(QUADS); //esquerda
  350.     texture(boxtex);
  351.     vertex(-d2, -d2,  d2, 1, 1);
  352.     vertex(-d2,  d2,  d2, 0, 1);
  353.     vertex(-d2,  d2, -d2, 0, 0);
  354.     vertex(-d2, -d2, -d2, 1, 0);
  355.   endShape(CLOSE);
  356.  
  357.   beginShape(QUADS); //frente
  358.     texture(boxtex);
  359.     vertex( d2, d2,  d2, 0, 1);
  360.     vertex( d2, d2, -d2, 0, 0);
  361.     vertex(-d2, d2, -d2, 1, 0);
  362.     vertex(-d2, d2,  d2, 1, 1);
  363.   endShape();
  364.  
  365.   beginShape(QUADS); //traseira
  366.     texture(boxtex);
  367.     vertex( d2, -d2,  d2, 0, 1);
  368.     vertex( d2, -d2, -d2, 0, 0);
  369.     vertex(-d2, -d2, -d2, 1, 0);
  370.     vertex(-d2, -d2,  d2, 1, 1);
  371.   endShape();
  372.  
  373.   beginShape(QUADS);  //baixo
  374.     texture(boxtex);
  375.     vertex(-d2, -d2, -d2, 0, 1);
  376.     vertex(-d2,  d2, -d2, 0, 0);
  377.     vertex( d2,  d2, -d2, 1, 0);
  378.     vertex( d2, -d2, -d2, 1, 1);
  379.   endShape();
  380.  
  381.   popMatrix();
  382.  
  383.   if(anguloTampa >= radians(-130)){
  384.     anguloTampa += radians(-1);
  385.   }
  386.  
  387.  
  388.   //DIAMANTE - INCREMENTOS
  389.   diamanteAngulo += 0.2;
  390.   pZ += 1;
  391.  
  392. }
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399. void keyPressed(){
  400.  
  401.   if(keyCode == UP){
  402.     cZ += 20;
  403.   }
  404.  
  405.   if(keyCode == DOWN){
  406.     cZ -= 20;
  407.   }
  408.  
  409.   if(keyCode == LEFT){
  410.     angulo -= 0.1;
  411.   }
  412.  
  413.   if(keyCode == RIGHT){
  414.     angulo += 0.1;
  415.   }
  416.  
  417.   if(key=='+'){
  418.     raio -= 20;
  419.   }
  420.  
  421.     if(key=='-'){
  422.     raio += 20;
  423.   }
  424.  
  425.   if(key=='t'){
  426.     anguloTampa += 0.1;
  427.   }
  428.  
  429.   if(key=='y'){
  430.     anguloTampa -= 0.1;
  431.   }
  432. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top