Moim zadaniem było zaproponowanie i zaimplementowanie algorytmu generującego model góry za pomocą funkcji Weierstrassa. Postanowiłem dokonać tego obracając wygenerowany wy kres wokół osi OX. Oczywiście obracanie wykresu w zbyt małych odstępach byłoby dość trudne i czasocliłoime do wykonania, a po za tym powodowałoby duże opużnienie. Dlatego wygenerowałem tylko 7 wykresów co 30°. Po wygenerowaniu wykresów (chmóiy punktów) rysowałem siatkę łącząc kolejne punkty w odpowiedmej kolejności.
Funkcja draws przyjmuje parametr a. będący parametrem funkcji Weierstrassa. Pomżcj zamieszczam kod programu.
/******************************************************************** *****************i
// Program rysujący siatkę (model) góry przy pomocy funkcji Weierstrassa wykorzystujący funkcje biblioteki OpenGL
/********************************************************************
*****************/
linclude <windows.h> linclude <cstdlib>
#include <ctime> linclude <cmath> linclude <gl/gl.h> linclude <gl/glut.h>
typedef float point3(3); typedef float point2[2]; point2 tab2D[100]; point3 tab[7][100];
static GLfloat theta[] = {0.0, 0.0, 0.0); // trzy kąty obrotu
/******************************************************************** *****************^
//funkcja zwracająca wartość (y) funkcji weierstrassa w punkcie x float weierstrass(float a, float x)
float wynik = 0;
for( int k - 1 ; k<-20 ; k++ )
wynik +- sin(3.14*pow(k, a)*x)/(3.14*pow(k,a));
return wynik;
// funkcja generująca współrzędne 2D (wykres funkcji weierstrassa) void generuj tab2D( float a )
float x = 0; float s = 0.01; float mn = 10;
for( int i ■ 0 ; i<100 ; i++ )
2