Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.42 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement