Yep, un petit script pour dessiner des poils, rien de très compliqué :
import processing.opengl.*; float pi = 3.1415; float density = 0.1; //densitity of hairs int w = 600; //size of the window int N = int(density*w); int strW = 2; float x[] = new float[N]; //positions float y[] = new float[N]; float dx[][] = new float[N][N]; //speed float dy[][] = new float[N][N]; float l[][] = new float[N][N]; //length float R[][] = new float[N][N]; //color float G[][] = new float[N][N]; float B[][] = new float[N][N]; void setup(){ size(w,w); //smooth(); noLoop(); for (int i=0;i<N;i++) { x[i] = float(w*i/N) + random(-1,1); y[i] = float(w*i/N) + random(-1,1); } for(int i=0;i<N; i++) { for(int j=0;j<N; j++) { //normalized coordinates float a; a = float(i)/float(N)-0.5; float b; b = float(j)/float(N)-0.5; //polar coordinates float r = sqrt( pow(a,2) + pow(b,2) ); float th = atan(b/a); dx[i][j] = 1*pow(4.3*th,1)+2*sin(5*r)+a*b*2; dy[i][j] = -cos(10*r)-a+b ; l[i][j] = 0.8*(1.3-0.8*cos(th-2)/(pow(4*r+2,2)+0.6))*r; // Colors R[i][j] = 50;//250*(a+0.5); G[i][j] = 50;//100*cos(2*th); B[i][j] = 50;//200; //R[i][j] = 250*(a+0.5)*atan(a); //G[i][j] = th*100*(sin(6*r)+1); //B[i][j] = 200*(cos(10*r)+1); } } } void draw(){ fill(0); background(255); stroke(0,0,0); //float l=10; for(int i=0;i<N; i++) { for(int j=0;j<N; j++) { draw_line(x[i]+ random(-5,5),y[j]+ random(-5,5),dx[i][j],dy[i][j],l[i][j],R[i][j],G[i][j],B[i][j],25); } } saveFrame("line-1.tif"); } void draw_line(float a,float b, float da, float db, float l, float R, float G, float B, int n) { //float l=2; float c; float d; c = a+l*(da + 2*random(-1,1)); d = b+l*(db + 2*random(-1,1)); stroke( 10*(5-n),10*(5-n),10*(5-n) ); stroke(R,G,B); strokeWeight(strW); line(a,b,c,d); if( n != 0 ) { float e = 1.1; draw_line(c,d,da,db,l,e*R,e*G,e*B, n-1); } }
Hors ligne
a premiere vue j'aurais pense a de la limaille de fer sous un champ magnetique, comme ce qu'on voit en cours, mais c'est vrai que ca ressemble d'avantage a... des poils XD
Hors ligne
Chouettes images! Ça donne envie de jouer avec... Voila une version pour faire des hiéroglyphes :
import processing.opengl.*; float pi = 3.1415; float density = 0.04; //densitity of hairs int w = 600; //size of the window int N = int(density*w); int strW = 3; float x[] = new float[N]; //positions float y[] = new float[N]; float dx[][] = new float[N][N]; //speed float dy[][] = new float[N][N]; float l[][] = new float[N][N]; //length float R[][] = new float[N][N]; //color float G[][] = new float[N][N]; float B[][] = new float[N][N]; void setup(){ size(w,w); smooth(); //noLoop(); for (int i=0;i<N;i++) { x[i] = float(w*i/N)+12; y[i] = float(w*i/N)+12; } for(int i=0;i<N; i++) { for(int j=0;j<N; j++) { //normalized coordinates float a; a = float(i)/float(N)-0.5; float b; b = float(j)/float(N)-0.5; //polar coordinates float r = sqrt( pow(a,2) + pow(b,2) ); float th = atan(b/a); //dx[i][j] = (1*pow(4.3*th,1)+2*sin(5*r)+a*b*2); //dy[i][j] = (-cos(10*r)-a+b) ; dx[i][j] = cos(r); dy[i][j] = sin(r); //l[i][j] = 1.8*(1.3-0.8*cos(th-2)/(pow(4*r+2,2)+0.6))*r; l[i][j] = 6; // Colors R[i][j] = 0;//250*(a+0.5); G[i][j] = 0;//100*cos(2*th); B[i][j] = 0;//200; //R[i][j] = 250*(a+0.5)*atan(a); //G[i][j] = th*100*(sin(6*r)+1); //B[i][j] = 200*(cos(10*r)+1); } } } void draw(){ fill(0); background(255); stroke(0,0,0); //float l=10; for (int i=0;i<N;i++) { //x[i] = w*i/(((mouseX / 200) *N)+.001)+12; //y[i] = w*i/(((mouseY / 200) *N)+.001)+12; x[i] = float(w*i/N)+12; y[i] = float(w*i/N)+12; for(int j=0;j<N; j++) { l[i][j] = mouseX / 50; } } for(int i=0;i<N; i++) { for(int j=0;j<N; j++) { int nb = round(mouseY / 20); draw_line(x[i],y[j],dx[i][j],dy[i][j],l[i][j],R[i][j],G[i][j],B[i][j],nb); } } // saveFrame("line-1.tif"); //noLoop(); } void draw_line(float a,float b, float da, float db, float l, float R, float G, float B, int n) { //float l=2; float c; float d; //c = a+l*(da + 2*random(-.1,.1)); //d = b+l*(db + 2*random(-.1,.1)); float y; float z; z = random(-1,1); if (z > 0) y = 1; else y = -1; c = a+l*y; z = random(-1,1); if (z > 0) y = 1; else y = -1; d = b+l*y; //stroke( 10*(5-n),10*(5-n),10*(5-n) ); stroke(R,G,B); strokeWeight(strW); line(a,b,c,d); if( n != 0 ) { float e = 5.5; draw_line(c,d,da,db,l,R,G,B, n-1); } } void mousePressed() { saveFrame("line-" + millis() + ".tif"); loop(); }
Hors ligne
Staross a écrit:
Yep, un petit script pour dessiner des poils, rien de très compliqué :
http://codelab.fr/up/Hairs-3.png
http://codelab.fr/up/Hairs-2.png
http://codelab.fr/up/Hairs-1.png
tu vas le mettre dans le fanzine tous a poil??!!!
Hors ligne
Je les ai filés à djemija ouais, on verra si ça y est
Sinon c'est vrai que ça ressemble à de la limaille de fer, j'ai pas exactement trouvé la bonne fonction pour faire un trou du cul (j'ai essayé pourtant!).
Pas mal les hiéroglyphes, ça pourrait servir de texture...
Hors ligne