Advertisement
Guest User

Untitled

a guest
Apr 17th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.29 KB | None | 0 0
  1. //line generation made by TiTi26
  2. //
  3. //16th of April 2018
  4.  
  5. int len=1700, hmax=3, vmax=0;
  6. color c=color(15, 235, 120); //BLUE :48, 179, 255 PURPLE :193,48,255
  7. int[][] vlines= new int[4][4]; //0: x 1: y 2: orientation 3: triangle
  8. int[][] hlines= new int[4][3]; //0: x 1: x_max 2: orientation
  9. int[][] vlines2= new int[9][5]; //1e ligne pour les valeurs
  10. int[] decoArea= new int[5];
  11. float[][][] deco= new float[0][0][0]; //0: x 1: max_x 2: type of deco (0=triangles: 3d: 1: nmb 2: 1_x ) 3: color
  12. //1=squares : 3d: 1: nmb 2: 1_x 3: 2_x ...)
  13.  
  14. void setup() {
  15.  
  16. colorMode(HSB);
  17. c=color(int(random(0,255)),235,255); // random color
  18. c=color(0,235,255);
  19.  
  20. frameRate(60);
  21. strokeWeight(7);
  22. noStroke();
  23. size(1800, 500);
  24. background(0);
  25. fill(c);
  26.  
  27. for (int i=0; i<4; i++) {
  28. /*if(i==0) lines[i][0]=(width-lenEnd)/2+int(random(50,250));
  29. else lines[i][0]=lines[i-1][0]+int(random(100,300));*/
  30. vlines[i][0]=int(random(0, 90*(i+1))+i*(len-100)/4+(width-len));
  31. vlines[i][1]=int(random(90, 200));
  32. vlines[i][2]=int(random(2));
  33. vlines[i][3]=int(random(3));
  34. decoArea[i]=vlines[i][0]; //adding the x value to the decoArea array
  35. }
  36.  
  37. if (vlines[3][0]<1500) hmax++;
  38.  
  39. int p=-1; //variable pour compter le numéro de la ligne verticale
  40. for (int i=0; i<hmax; i++) {
  41. int a=0;
  42. hlines[i][0]=vlines[i][0]+60;
  43. if (i>2) hlines[i][1]=int(random(len-120, len-20));
  44. else hlines[i][1]=vlines[i+1][0]-35;
  45. hlines[i][2]=int(random(2));
  46. a=int((hlines[i][1]-hlines[i][0])/200); //0 to 4 depending on size
  47. if ((random(0, 200)<(hlines[i][1]-hlines[i][0])%200)) a++; //random to add an extra one
  48. if (hlines[i][1]-hlines[i][0]<100) a=0; //if too small, nothing
  49. println("a : "+a);
  50.  
  51. for (int j=0; j<a; j++) {
  52. p++;
  53. //vlines2[p][1]=int(random(hlines[i][0]+75+(hlines[i][1]-hlines[i][0])/a*j, hlines[i][1]-(hlines[i][1]-hlines[i][0])/a*(a-1)-50)); //old random
  54. vlines2[p][1]=int(random((hlines[i][1]-hlines[i][0])*1/a-100)+hlines[i][0]+(hlines[i][1]-hlines[i][0])/a*j+50);
  55. vlines2[p][2]=int(random(150, 300));
  56. vlines2[p][3]=int(random(2));
  57. vlines2[p][4]=int(random(0, 3));
  58. decoArea=expand(decoArea, decoArea.length+1);
  59. decoArea[p+4]=vlines2[p][1]; //adding the x value to the decoArea array
  60. }
  61. vmax+=a;
  62. }
  63.  
  64.  
  65. println("vmax "+vmax);
  66.  
  67. decoArea=sort(decoArea); //ordering the x values of all vertical lines
  68.  
  69. deco= new float[decoArea.length][4][10]; //modifying deco array
  70. for (int i=1; i<deco.length-1; i++) {
  71. if (decoArea[i+1]-decoArea[i]>100) {
  72. deco[i][0][0]=decoArea[i]+60;
  73. deco[i][1][0]=decoArea[i+1]-10;
  74. if (deco[i][1][0]-deco[i][0][0]<50) {
  75. deco[i][2][0]=1;
  76. } else {
  77. //deco[i][2][0]=int(random(0,2)); //DEBUG CHANGE TO (0,2);
  78. if (i==1) deco[i][2][0]=int(random(0, 2));
  79. else deco[i][2][0]=1-deco[i-1][2][0];
  80. }
  81.  
  82. if (deco[i][2][0]==0) { //TRIANGLES
  83. deco[i][2][1]=int(((deco[i][1][0]-deco[i][0][0])-15)/35);
  84. deco[i][2][2]= deco[i][0][0]+((deco[i][1][0]-deco[i][0][0])-(15+35*deco[i][2][1]))/2;
  85. }
  86.  
  87. if (deco[i][2][0]==1) { //SQUARES
  88. deco[i][2][1]=int(((deco[i][1][0]-deco[i][0][0])+10)/40);
  89. if((deco[i][1][0]-deco[i][0][0])+10>190) deco[i][2][1]--;
  90. println("distance : "+(deco[i][1][0]-deco[i][0][0]));
  91. println("nombre de carrés : "+deco[i][2][1]);
  92. for (int r=0; r<deco[i][2][1]; r++) {
  93. deco[i][2][r+2]=(deco[i][1][0]-deco[i][0][0])*(r+1)/deco[i][2][1]-10+(r+1)/deco[i][2][1]*10;
  94. if (r+1!=deco[i][2][1]) deco[i][2][r+2]+=int(random(-10,10));
  95. if(r>0) deco[i][2][r+2] = constrain(deco[i][2][r+2],deco[i][2][r+1]+40,deco[i][2][r+1]+70);
  96. else deco[i][2][r+2] = constrain(deco[i][2][r+2],30,60);
  97. println("deco "+deco[i][2][r+2]);
  98. }
  99. }
  100. }
  101. for (int j=2; j<2+deco[i][2][1]; j++) {
  102. if (j==2) deco[i][3][j]=int(random(1, 4));
  103. else if (deco[i][3][j-1]==1) deco[i][3][j]=2;
  104. else if (deco[i][3][j-1]==3) deco[i][3][j]=2;
  105. else deco[i][3][j]=deco[i][3][j-1]+int(random(0, 2))*2-1;
  106. }
  107. }
  108. }
  109.  
  110.  
  111. void draw() {
  112.  
  113. background(0);
  114. noStroke();
  115.  
  116. if (len<len) len+=10;
  117.  
  118. fill(c); //basic line
  119. beginShape();
  120. vertex((width-len)/2, 10);
  121. vertex((width-len)/2+len, 10);
  122. vertex((width-len)/2+len-25, 60);
  123. vertex((width-len)/2+25, 60);
  124. endShape(CLOSE);
  125.  
  126. for (int i=0; i<4; i++) {
  127. fill(c);
  128. beginShape(); //vertical lines start
  129. vertex(vlines[i][0], 10);
  130. vertex(vlines[i][0]+50, 10);
  131. vertex(vlines[i][0]+50, vlines[i][1]+vlines[i][2]*25);
  132. vertex(vlines[i][0], vlines[i][1]+(1-vlines[i][2])*25);
  133. endShape(CLOSE);
  134. if (vlines[i][3]>0) {
  135. fill(c, 255-64*vlines[i][3]);
  136. triangle(vlines[i][0]+50*(1-vlines[i][2]), vlines[i][1]+10, vlines[i][0]+50*(1-vlines[i][2]), vlines[i][1]+60, vlines[i][0]+50*vlines[i][2], vlines[i][1]+35);
  137. } //vertical lines end
  138. }
  139.  
  140.  
  141. for (int i=0; i<hmax; i++) {
  142. fill(c, 192);
  143. beginShape(); //horizontal lines start
  144. vertex(hlines[i][0]+hlines[i][2]*25, 70);
  145. vertex(hlines[i][0]+(1-hlines[i][2])*25, 120);
  146. vertex(hlines[i][1]+(1-hlines[i][2])*25, 120);
  147. vertex(hlines[i][1]+hlines[i][2]*25, 70);
  148. endShape(CLOSE); //horizontal lines end
  149. }
  150.  
  151.  
  152. for (int i=0; i<vmax; i++) {
  153. fill(c, 192);
  154. beginShape(); //start vertical lines 2
  155. vertex(vlines2[i][1], 120);
  156. vertex(vlines2[i][1]+50, 120);
  157. vertex(vlines2[i][1]+50, vlines2[i][2]+vlines2[i][3]*25);
  158. vertex(vlines2[i][1], vlines2[i][2]+(1-vlines2[i][3])*25);
  159. endShape(CLOSE);
  160.  
  161. if (vlines2[i][4]>0) {
  162. fill(c, 255-64*(vlines2[i][4]+1));
  163. triangle(vlines2[i][1]+50*(1-vlines2[i][3]), vlines2[i][2]+10, vlines2[i][1]+50*(1-vlines2[i][3]), vlines2[i][2]+60, vlines2[i][1]+50*vlines2[i][3], vlines2[i][2]+35);
  164. }
  165. } //end vertical lines 2
  166.  
  167. for (int i=0; i<deco.length-1; i++) { //start deco
  168.  
  169. if (deco[i][0][0]!=0&&deco[i][2][0]==0) {
  170. for (int j=2; j<2+deco[i][2][1]; j++) {
  171. fill(c, 255-64*deco[i][3][j]);
  172. //line(deco[i][2][2]+35*(j-2),133,deco[i][2][2]+35*(j-2),133+50);
  173. triangle(deco[i][2][2]+35*(j-2), 130+50*(j%2), deco[i][2][2]+35*(j-2)+25, 180-50*(j%2), deco[i][2][2]+35*(j-2)+50, 130+50*(j%2));
  174. }
  175. } else if (deco[i][0][0]!=0&&deco[i][2][0]==1) {
  176. fill(c, 0);
  177. for (int j=2; j<2+deco[i][2][1]; j++) {
  178. stroke(c, 255-64*deco[i][3][j]);
  179. //rect(deco[i][1][0]-4, 133, -(deco[i][1][0]-deco[i][0][0])+7, deco[i][1][0]-deco[i][0][0]-7);
  180. if (j==2) rect(deco[i][0][0]+3, 133, deco[i][2][j]-7, deco[i][2][j]-7);
  181. else rect(deco[i][0][0]+13+deco[i][2][j-1], 133, deco[i][2][j]-deco[i][2][j-1]-17, deco[i][2][j]-deco[i][2][j-1]-17);
  182. noStroke();
  183. }
  184. } //end deco
  185. }
  186. }
  187.  
  188.  
  189. /* 1 => a=total
  190. 2 => a=(30,total-40) b=total
  191. 3 => a=30+(0,(total-(n°*40-10))) b=a+40+(0,total-(n°*40-10))-a) c=total */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement