for{ int k = 1 ; k<=20 ; k++ )
wynik +- sin(3.14*pow(k,a)*x)/(3.14*pow(k,a))
if( wynik < 0 )
wynik *= (-1); return wynik;
// funkcja generująca współrzędne 2D (wykres funkcji weierstrassa) void generuj_tab2D( float a )
float x = 0; float s = 1.0/doc; float mn = 10;
for( int i = 0 ; i<doc-l ; i++ )
tab2D[i][0] - x*mn;
tab2D(i](1] = mn*weierstrass(a,x);
x +- s;
x*mn;
0;
tab2D[doc-l][0] tab2D[doc-l][1]
// funkcja obracająca wykres wokół OX (rzutowanie na 3D) void generuj__3D()
// zmienna przechowująca aktualny kąt obrotu funkcji (w stopniach) float alfa = 0.0;
for( int j - 0 ; j<szczeg ; j++ ) // dla wszystkich funkcji
generuj_tab2D(taba[j]);//generujemy wykres funkcji dla podanego parametru a //każdą współrzędną 2D przeliczamy na współrzędną 3D for( int i - 0 ; i<doc ; i++ )
tab[j][i][0] = tab2D[i] [0]-5;
tab[j][i][1] = tab2D[i][1] * sin(3.14*(alfa/180.0)); tab(j][i][2) - tab2D[i](1) * cos(3.14*(alfa/180.0));
alfa +■ 180.0/(szczeg-l); //zwiększamy kąt obrotu
if( gen )
for( int i = 0 ; i<szczeg ; i++ ) (
taba(i] = rand()%poziom; taba[i] /- 10; taba[i] +- 1;
losowanie_kolorow() ; gen = 0;
generuj_3D();
for( int j - 0 ; j<szczeg-l ; j++ )
for( int i - 0 ; i<doc-l ; i++ )
// rysowanie wykresu o konkretnym koncie (kąt zależny od j) glBegin(GL_POLYGON);
glColor3fv(kolor[j][i]);