Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.12 KB | None | 0 0
  1. float w(unsigned int x)
  2. {
  3.     return static_cast<float>(0.5*exp(-0.0001*x*x));
  4. }
  5. float wc(unsigned int x)
  6. {
  7.     return 0.5*w(x);
  8. }
  9. void setcolors(unsigned int s_x, unsigned int s_y, unsigned int e_x, unsigned int e_y, unsigned int i)
  10. {
  11.     unsigned int sr_x=(s_x+e_x)/2;
  12.     unsigned int sr_y=(s_y+e_y)/2;
  13.     if(s_x!=sr_x)
  14.     {  
  15.         unsigned int x=(e_x-s_x)/2;
  16.         unsigned int centrum=sqrt((float)((x*x)+(x*x)));
  17.         float W=w(x);
  18.         float Wc=wc(centrum);
  19.         float color=static_cast<float>(static_cast<float>(rand())/static_cast<float>(RAND_MAX));
  20.         if(tab[s_x][sr_y]==0) tab[s_x][sr_y]=tab[s_x][s_y]+tab[s_x][e_y];
  21.         color=static_cast<float>(static_cast<float>(rand())/static_cast<float>(RAND_MAX));
  22.         if(tab[sr_x][s_y]==0) tab[sr_x][s_y]=(1-2*W)*color+W*tab[s_x][s_y]+W*tab[e_x][s_y];
  23.         color=static_cast<float>(static_cast<float>(rand())/static_cast<float>(RAND_MAX));
  24.         if(tab[e_x][sr_y]==0) tab[e_x][sr_y]=(1-2*W)*color+W*tab[e_x][s_y]+W*tab[e_x][e_y];
  25.         color=static_cast<float>(static_cast<float>(rand())/static_cast<float>(RAND_MAX));
  26.         if(tab[sr_x][e_y]==0) tab[sr_x][e_y]=(1-2*W)*color+W*tab[s_x][e_y]+W*tab[e_x][e_y];
  27.         color=static_cast<float>(static_cast<float>(rand())/static_cast<float>(RAND_MAX));
  28.         if(tab[sr_x][sr_y]==0) tab[sr_x][sr_y]=(1-4*Wc)*color+Wc*(tab[s_x][s_y]+tab[s_y][e_x]+tab[e_x][s_y]+tab[e_x][e_y]);
  29.         setcolors(s_x,s_y,sr_x,sr_y,i+1);
  30.         setcolors(sr_x,s_y,e_x,sr_y,i+1);
  31.         setcolors(s_x,sr_y,sr_x,e_y,i+1);
  32.         setcolors(sr_x,sr_y,e_x,e_y,i+1);
  33.     }
  34. }
  35. void fractal(void)
  36. {
  37.     unsigned int dlugosc=wymiar-1;
  38.     tab[0][0]=static_cast<float>(static_cast<float>(rand())/static_cast<float>(RAND_MAX));
  39.     tab[0][dlugosc]=static_cast<float>(static_cast<float>(rand())/static_cast<float>(RAND_MAX));
  40.     tab[dlugosc][0]=static_cast<float>(static_cast<float>(rand())/static_cast<float>(RAND_MAX));
  41.     tab[dlugosc][dlugosc]=static_cast<float>(static_cast<float>(rand())/static_cast<float>(RAND_MAX));
  42.     setcolors(0,0,dlugosc,dlugosc,0);
  43.     for(int i=0;i<wymiar;i++)
  44.     {
  45.         for(int j=0;j<wymiar;j++)
  46.         {
  47.             glBegin(GL_POINTS);
  48.             glColor3f(tab[i][j],tab[i][j],tab[i][j]);
  49.             glVertex2f((float)(i-256),(float)(j-256));
  50.             glEnd();
  51.         }
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement