Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float d = 10;
- float d2 = d * 5;
- float d1 = d2 / 2;
- float d3 = d * 2.5;
- int centroX = width/2;
- int centroY = height/2;
- float angulo = 20;
- float diamanteAngulo = 20;
- int raio = 500;
- float cX = 0;
- float cY = 0;
- float cZ = 200; //was 50
- float a=10;
- float f = 15;
- float f2= f *1.5;
- float f0= f/2;
- float pX, pY, pZ;
- float anguloTampa = 0;
- void setup(){
- size(800, 600, P3D);
- smooth();
- noStroke();
- }
- void diamante( int d) {
- translate(0, 0, pZ);
- rotateZ(diamanteAngulo);
- //fill(200,0,0);
- beginShape(TRIANGLE); // (-3, -1), (-1,-3)
- vertex(-d3, -d, 0);
- vertex(-d, -d3, 0);
- vertex(-f, -f, a);
- endShape();
- //fill(200,0,0);
- beginShape(TRIANGLE);
- vertex(-f, -f, a);
- vertex(0, -f2, a);
- vertex(-d, -d3, 0);
- endShape();
- //fill(200,100,0);
- beginShape(TRIANGLE); //(-1,-3), (1,-3)
- vertex(-d, -d3, 0);
- vertex(d, -d3, 0);
- vertex(0, -f2, a);
- endShape();
- //fill(200,150,0);
- beginShape(TRIANGLE);
- vertex(0, -f2, a);
- vertex(f, -f, a);
- vertex(d, -d3, 0);
- endShape();
- //fill(200,200,0);
- beginShape(TRIANGLE); //(1,-3), (3,-1)
- vertex(d, -d3, 0);
- vertex(d3, -d, 0);
- vertex(f, -f, a);
- endShape();
- //fill(200,200,0);
- beginShape(TRIANGLE);
- vertex(f, -f, a);
- vertex(f2, 0, a);
- vertex(d3, -d, 0);
- endShape();
- //fill(100,200,0);
- beginShape(TRIANGLE); //(3,-1), (3,1)
- vertex(d3, -d, 0);
- vertex(d3, d, 0);
- vertex(f2, 0, a);
- endShape();
- //fill(50,200,0);
- beginShape(TRIANGLE);
- vertex(f2, 0, a);
- vertex(f, f, a);
- vertex(d3, d, 0);
- endShape();
- //fill(0,200,0);
- beginShape(TRIANGLE); //(3,1), (1,3)
- vertex(d3, d, 0);
- vertex(d, d3, 0);
- vertex(f, f, a);
- endShape();
- //fill(0,200,50);
- beginShape(TRIANGLE);
- vertex(f, f, a);
- vertex(0, f2, a);
- vertex(d, d3, 0);
- endShape();
- //fill(0,200,100);
- beginShape(TRIANGLE); //(1,3), (-1,3)
- vertex(d, d3, 0);
- vertex(-d, d3, 0);
- vertex(0, f2, a);
- endShape();
- //fill(0,100,250);
- beginShape(TRIANGLE);
- vertex(0, f2, a);
- vertex(-f, f, a);
- vertex(-d, d3, 0);
- endShape();
- //fill(0,100,200);
- beginShape(TRIANGLE); //(-1,3), (-3,1)
- vertex(-d, d3, 0);
- vertex(-d3, d, 0);
- vertex(-f, f, a);
- endShape();
- //fill(0,100,200);
- beginShape(TRIANGLE);
- vertex(-f, f, a);
- vertex(-f2, 0, a);
- vertex(-d3, d, 0);
- endShape();
- //fill(200,0,200);
- beginShape(TRIANGLE); //(-3,1), (-3,-1)
- vertex(-d3, d, 0);
- vertex(-d3, -d, 0);
- vertex(-f2, 0, a);
- endShape();
- //fill(200,0,200);
- beginShape(TRIANGLE); //last one
- vertex(-f, -f, a);
- vertex(-f2, 0, a);
- vertex(-d3, -d, 0);
- endShape();
- //fill(50, 200, 50);
- beginShape(); //top
- vertex(-f, -f, a);
- vertex(0, -f2, a);
- vertex(f, -f, a);
- vertex(f2, 0, a);
- vertex(f, f, a);
- vertex( 0, f2, a);
- vertex(-f, f, a);
- vertex(-f2, 0, a);
- endShape();
- //fill(0,200,0);
- //BOTTOM
- beginShape(TRIANGLE);
- vertex(d, d3, 0);
- vertex(d3, d, 0);
- vertex(0, 0, -2*d3);
- endShape();
- beginShape(TRIANGLE);
- vertex(d3, d, 0);
- vertex(d3, -d, 0);
- vertex(0, 0, -2*d3);
- endShape();
- beginShape(TRIANGLE);
- vertex(d3, -d, 0);
- vertex(d, -d3, 0);
- vertex(0, 0, -2*d3);
- endShape();
- beginShape(TRIANGLE);
- vertex(d, -d3, 0);
- vertex(-d, -d3, 0);
- vertex(0, 0, -2*d3);
- endShape();
- beginShape(TRIANGLE);
- vertex(-d, -d3, 0);
- vertex(-d3, -d, 0);
- vertex(0, 0, -2*d3);
- endShape();
- beginShape(TRIANGLE);
- vertex(-d3, -d, 0);
- vertex(-d3, d, 0);
- vertex(0, 0, -2*d3);
- endShape();
- beginShape(TRIANGLE);
- vertex(-d3, d, 0);
- vertex(-d, d3, 0);
- vertex(0, 0, -2*d3);
- endShape();
- beginShape(TRIANGLE);
- vertex(-d, d3, 0);
- vertex(d, d3, 0);
- vertex(0, 0, -2*d3);
- endShape();
- }
- void draw(){
- ambientLight(180, 180, 180);
- pointLight(51, 102, 126, 0, 0, 50);
- lightSpecular(0, 0, 200);
- float cX = centroX + (raio * cos(angulo));
- float cY = centroY - (raio * sin(angulo));
- camera(cX, cY, cZ, centroX, centroY, 0, 0, 0, -1);
- background(100, 120, 200);
- translate(centroX, centroY);
- PImage boxtex = loadImage("box.jpg");
- PImage boxhalf = loadImage("boxhalf.jpg");
- PImage floortex = loadImage("floor.jpg");
- PImage walltex = loadImage("wall.jpg");
- //-------ROOM--------
- pushMatrix();
- textureMode(NORMAL);
- textureWrap(REPEAT);
- beginShape(QUADS); //FLOOR
- texture(floortex);
- vertex(-d2*10, -d2*10, -d2 - 1, 0, 5);
- vertex(-d2*10, d2*10, -d2 - 1, 0, 0);
- vertex( d2*10, d2*10, -d2 - 1, 5, 0);
- vertex( d2*10, -d2*10, -d2 - 1, 5, 5);
- endShape(CLOSE);
- beginShape(QUADS); //WALL 1
- texture(walltex);
- vertex( d2*10, -d2*10, d2*20, 3, 3);
- vertex( d2*10, d2*10, d2*20, 0, 3);
- vertex( d2*10, d2*10, -d2 - 1, 0, 0);
- vertex( d2*10, -d2*10, -d2 - 1, 3, 0);
- endShape(CLOSE);
- beginShape(QUADS); //WALL 2
- texture(walltex);
- vertex( d2*10, d2*10, d2*20, 0, 3);
- vertex( d2*10, d2*10, -d2 - 1, 0, 0);
- vertex(-d2*10, d2*10, -d2 - 1, 3, 0);
- vertex(-d2*10, d2*10, d2*20, 3, 3);
- endShape();
- beginShape(QUADS); //WALL 3
- texture(walltex);
- vertex(-d2*10, -d2*10, d2*20, 3, 3);
- vertex(-d2*10, d2*10, d2*20, 0, 3);
- vertex(-d2*10, d2*10, -d2 - 1, 0, 0);
- vertex(-d2*10, -d2*10, -d2 - 1, 3, 0);
- endShape(CLOSE);
- beginShape(QUADS); //WALL 4
- texture(walltex);
- vertex( d2*10, -d2*10, d2*20, 0, 3);
- vertex( d2*10, -d2*10, -d2 - 1, 0, 0);
- vertex(-d2*10, -d2*10, -d2 - 1, 3, 0);
- vertex(-d2*10, -d2*10, d2*20, 3, 3);
- endShape();
- popMatrix();
- //----END OF ROOM ------
- pushMatrix();
- diamante(10);
- popMatrix();
- line(0, -1000, 0, 0, 1000, 0);
- //-------CAIXA--------
- pushMatrix();
- translate(-d2, 0, d2);
- rotateY(anguloTampa);
- translate(d2, 0, -d2);
- beginShape(QUADS); //cima L
- texture(boxhalf);
- vertex(-d2, -d2, d2, 0, 0);
- vertex( 0, -d2, d2, 1, 0);
- vertex( 0, d2, d2, 1, 1);
- vertex(-d2, d2, d2, 0, 1);
- endShape();
- popMatrix();
- pushMatrix();
- translate(d2, 0, d2);
- rotateY(anguloTampa * -1);
- translate(-d2, 0, -d2);
- beginShape(QUADS); //cima R
- texture(boxhalf);
- vertex(d2, -d2, d2, 0, 0);
- vertex( 0, -d2, d2, 1, 0);
- vertex( 0, d2, d2, 1, 1);
- vertex( d2, d2, d2, 0, 1);
- endShape();
- popMatrix();
- textureMode(NORMAL);
- pushMatrix();
- beginShape(QUADS); // direita
- texture(boxtex);
- vertex( d2, -d2, d2, 1, 1);
- vertex( d2, d2, d2, 0, 1);
- vertex( d2, d2, -d2, 0, 0);
- vertex( d2, -d2, -d2, 1, 0);
- endShape(CLOSE);
- beginShape(QUADS); //esquerda
- texture(boxtex);
- vertex(-d2, -d2, d2, 1, 1);
- vertex(-d2, d2, d2, 0, 1);
- vertex(-d2, d2, -d2, 0, 0);
- vertex(-d2, -d2, -d2, 1, 0);
- endShape(CLOSE);
- beginShape(QUADS); //frente
- texture(boxtex);
- vertex( d2, d2, d2, 0, 1);
- vertex( d2, d2, -d2, 0, 0);
- vertex(-d2, d2, -d2, 1, 0);
- vertex(-d2, d2, d2, 1, 1);
- endShape();
- beginShape(QUADS); //traseira
- texture(boxtex);
- vertex( d2, -d2, d2, 0, 1);
- vertex( d2, -d2, -d2, 0, 0);
- vertex(-d2, -d2, -d2, 1, 0);
- vertex(-d2, -d2, d2, 1, 1);
- endShape();
- beginShape(QUADS); //baixo
- texture(boxtex);
- vertex(-d2, -d2, -d2, 0, 1);
- vertex(-d2, d2, -d2, 0, 0);
- vertex( d2, d2, -d2, 1, 0);
- vertex( d2, -d2, -d2, 1, 1);
- endShape();
- popMatrix();
- if(anguloTampa >= radians(-130)){
- anguloTampa += radians(-1);
- }
- //DIAMANTE - INCREMENTOS
- diamanteAngulo += 0.2;
- pZ += 1;
- }
- void keyPressed(){
- if(keyCode == UP){
- cZ += 20;
- }
- if(keyCode == DOWN){
- cZ -= 20;
- }
- if(keyCode == LEFT){
- angulo -= 0.1;
- }
- if(keyCode == RIGHT){
- angulo += 0.1;
- }
- if(key=='+'){
- raio -= 20;
- }
- if(key=='-'){
- raio += 20;
- }
- if(key=='t'){
- anguloTampa += 0.1;
- }
- if(key=='y'){
- anguloTampa -= 0.1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement