Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //line generation made by TiTi26
- //
- //16th of April 2018
- int len=1700, hmax=3, vmax=0;
- color c=color(15, 235, 120); //BLUE :48, 179, 255 PURPLE :193,48,255
- int[][] vlines= new int[4][4]; //0: x 1: y 2: orientation 3: triangle
- int[][] hlines= new int[4][3]; //0: x 1: x_max 2: orientation
- int[][] vlines2= new int[9][5]; //1e ligne pour les valeurs
- int[] decoArea= new int[5];
- 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
- //1=squares : 3d: 1: nmb 2: 1_x 3: 2_x ...)
- void setup() {
- colorMode(HSB);
- c=color(int(random(0,255)),235,255); // random color
- c=color(0,235,255);
- frameRate(60);
- strokeWeight(7);
- noStroke();
- size(1800, 500);
- background(0);
- fill(c);
- for (int i=0; i<4; i++) {
- /*if(i==0) lines[i][0]=(width-lenEnd)/2+int(random(50,250));
- else lines[i][0]=lines[i-1][0]+int(random(100,300));*/
- vlines[i][0]=int(random(0, 90*(i+1))+i*(len-100)/4+(width-len));
- vlines[i][1]=int(random(90, 200));
- vlines[i][2]=int(random(2));
- vlines[i][3]=int(random(3));
- decoArea[i]=vlines[i][0]; //adding the x value to the decoArea array
- }
- if (vlines[3][0]<1500) hmax++;
- int p=-1; //variable pour compter le numéro de la ligne verticale
- for (int i=0; i<hmax; i++) {
- int a=0;
- hlines[i][0]=vlines[i][0]+60;
- if (i>2) hlines[i][1]=int(random(len-120, len-20));
- else hlines[i][1]=vlines[i+1][0]-35;
- hlines[i][2]=int(random(2));
- a=int((hlines[i][1]-hlines[i][0])/200); //0 to 4 depending on size
- if ((random(0, 200)<(hlines[i][1]-hlines[i][0])%200)) a++; //random to add an extra one
- if (hlines[i][1]-hlines[i][0]<100) a=0; //if too small, nothing
- println("a : "+a);
- for (int j=0; j<a; j++) {
- p++;
- //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
- 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);
- vlines2[p][2]=int(random(150, 300));
- vlines2[p][3]=int(random(2));
- vlines2[p][4]=int(random(0, 3));
- decoArea=expand(decoArea, decoArea.length+1);
- decoArea[p+4]=vlines2[p][1]; //adding the x value to the decoArea array
- }
- vmax+=a;
- }
- println("vmax "+vmax);
- decoArea=sort(decoArea); //ordering the x values of all vertical lines
- deco= new float[decoArea.length][4][10]; //modifying deco array
- for (int i=1; i<deco.length-1; i++) {
- if (decoArea[i+1]-decoArea[i]>100) {
- deco[i][0][0]=decoArea[i]+60;
- deco[i][1][0]=decoArea[i+1]-10;
- if (deco[i][1][0]-deco[i][0][0]<50) {
- deco[i][2][0]=1;
- } else {
- //deco[i][2][0]=int(random(0,2)); //DEBUG CHANGE TO (0,2);
- if (i==1) deco[i][2][0]=int(random(0, 2));
- else deco[i][2][0]=1-deco[i-1][2][0];
- }
- if (deco[i][2][0]==0) { //TRIANGLES
- deco[i][2][1]=int(((deco[i][1][0]-deco[i][0][0])-15)/35);
- deco[i][2][2]= deco[i][0][0]+((deco[i][1][0]-deco[i][0][0])-(15+35*deco[i][2][1]))/2;
- }
- if (deco[i][2][0]==1) { //SQUARES
- deco[i][2][1]=int(((deco[i][1][0]-deco[i][0][0])+10)/40);
- if((deco[i][1][0]-deco[i][0][0])+10>190) deco[i][2][1]--;
- println("distance : "+(deco[i][1][0]-deco[i][0][0]));
- println("nombre de carrés : "+deco[i][2][1]);
- for (int r=0; r<deco[i][2][1]; r++) {
- 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;
- if (r+1!=deco[i][2][1]) deco[i][2][r+2]+=int(random(-10,10));
- 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);
- else deco[i][2][r+2] = constrain(deco[i][2][r+2],30,60);
- println("deco "+deco[i][2][r+2]);
- }
- }
- }
- for (int j=2; j<2+deco[i][2][1]; j++) {
- if (j==2) deco[i][3][j]=int(random(1, 4));
- else if (deco[i][3][j-1]==1) deco[i][3][j]=2;
- else if (deco[i][3][j-1]==3) deco[i][3][j]=2;
- else deco[i][3][j]=deco[i][3][j-1]+int(random(0, 2))*2-1;
- }
- }
- }
- void draw() {
- background(0);
- noStroke();
- if (len<len) len+=10;
- fill(c); //basic line
- beginShape();
- vertex((width-len)/2, 10);
- vertex((width-len)/2+len, 10);
- vertex((width-len)/2+len-25, 60);
- vertex((width-len)/2+25, 60);
- endShape(CLOSE);
- for (int i=0; i<4; i++) {
- fill(c);
- beginShape(); //vertical lines start
- vertex(vlines[i][0], 10);
- vertex(vlines[i][0]+50, 10);
- vertex(vlines[i][0]+50, vlines[i][1]+vlines[i][2]*25);
- vertex(vlines[i][0], vlines[i][1]+(1-vlines[i][2])*25);
- endShape(CLOSE);
- if (vlines[i][3]>0) {
- fill(c, 255-64*vlines[i][3]);
- 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);
- } //vertical lines end
- }
- for (int i=0; i<hmax; i++) {
- fill(c, 192);
- beginShape(); //horizontal lines start
- vertex(hlines[i][0]+hlines[i][2]*25, 70);
- vertex(hlines[i][0]+(1-hlines[i][2])*25, 120);
- vertex(hlines[i][1]+(1-hlines[i][2])*25, 120);
- vertex(hlines[i][1]+hlines[i][2]*25, 70);
- endShape(CLOSE); //horizontal lines end
- }
- for (int i=0; i<vmax; i++) {
- fill(c, 192);
- beginShape(); //start vertical lines 2
- vertex(vlines2[i][1], 120);
- vertex(vlines2[i][1]+50, 120);
- vertex(vlines2[i][1]+50, vlines2[i][2]+vlines2[i][3]*25);
- vertex(vlines2[i][1], vlines2[i][2]+(1-vlines2[i][3])*25);
- endShape(CLOSE);
- if (vlines2[i][4]>0) {
- fill(c, 255-64*(vlines2[i][4]+1));
- 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);
- }
- } //end vertical lines 2
- for (int i=0; i<deco.length-1; i++) { //start deco
- if (deco[i][0][0]!=0&&deco[i][2][0]==0) {
- for (int j=2; j<2+deco[i][2][1]; j++) {
- fill(c, 255-64*deco[i][3][j]);
- //line(deco[i][2][2]+35*(j-2),133,deco[i][2][2]+35*(j-2),133+50);
- 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));
- }
- } else if (deco[i][0][0]!=0&&deco[i][2][0]==1) {
- fill(c, 0);
- for (int j=2; j<2+deco[i][2][1]; j++) {
- stroke(c, 255-64*deco[i][3][j]);
- //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);
- if (j==2) rect(deco[i][0][0]+3, 133, deco[i][2][j]-7, deco[i][2][j]-7);
- 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);
- noStroke();
- }
- } //end deco
- }
- }
- /* 1 => a=total
- 2 => a=(30,total-40) b=total
- 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