Politechnika Wrocławska
Sprawozdanie
Generowanie modelu góry z wykorzystaniem funkcji Weierstrassa
[Wpisz nazwisko autora]
[Wybierz datę]
Moim zadaniem było zaproponowanie i zaimplementowanie algorytmu generującego model góry za pomocą funkcji Weierstrassa. Postanowiłem dokonać tego obracając wygenerowany wykres wokół osi OX. Oczywiście obracanie wykresu w zbyt małych odstępach byłoby dość trudne i czasochłonne do wykonania, a po za tym powodowałoby duże opuźnienie. Dlatego wygenerowałem tylko 7 wykresów co . Po wygenerowaniu wykresów (chmóry punktów) rysowałem siatkę łącząc kolejne punkty w odpowiedniej kolejności.
Funkcja draws przyjmuje parametr a, będący parametrem funkcji Weierstrassa. Poniżej zamieszczam kod programu.
/*************************************************************************************/
// Program rysujący siatkę (model) góry przy pomocy funkcji Weierstrassa wykorzystujący funkcje biblioteki OpenGL
/*************************************************************************************/
#include
#include
#include
#include
#include
#include
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
(…)
… (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++ )
{
tab2D[i][0] = x*mn;
tab2D[i][1] = mn*weierstrass(a,x);
x += s;
}
}
// funkcja obracająca wykres wokół OX (rzutowanie na 3D)
void generuj_3D()
{
for( int j = 0 ; j<7 ; j++ )
{
for( int i = 0 ; i<100 ; i++ )
{
tab[j][i][0] = tab2D[i][0];
// generowanie współrzędnych…
... zobacz całą notatkę
Komentarze użytkowników (0)