witam
potrzebuje w openglu zasymulowac ruch sprezyny.
Znalazlem w necie kod, lecz niestety za bardzo nie moge go rozgryzc.
Prosilbym o jakies drobne komentarze do tego kodu. Nie umiescilem ponizej calego kodu, tylko czesc odpowiadajaca za ruch sprezyny oraz zadeklorowane zmienne.
Ne wiem np. skad sie wziela wartosc i za co odpowiada float t_fact, float u_fact, float dt, float du. z gory dziekuje za pomoc.
zmienne:
float pi = 3.1415926535897932384626433;
float height = 0.5;
float heightStep = 0.01;
int sign = 1;
int pointsNum = 200;
float t_fact = 8.399;
float u_fact = 2;
float dt = t_factpi/48;
float du = u_factpi/12;
float param = 3;
ruch sprezyny:
for(t=0; t<t_factpi; t+=dt)
{
for(u=0; u<u_factpi; u+=du)
{
glColor3f(1, 1, 1);
glBegin(GL_QUADS);
x = cos(t)(param+cos(u));
y = sin(t)(param+cos(u));
z = height*(t)+sin(u);
xs = cos(t)(param);
ys = sin(t)(param);
zs = height*(t);
i = x - xs;
j = y - ys;
k = z - zs;
glTexCoord2f(0.0, 0.0);
glNormal3f(i, j, k);
glVertex3f(x, y, z);
x = cos(t+dt)*(param+cos(u));
y = sin(t+dt)*(param+cos(u));
z = height*(t+dt)+sin(u);
xs = cos(t+dt)*(param);
ys = sin(t+dt)*(param);
zs = height*(t+dt);
i = x - xs;
j = y - ys;
k = z - zs;
glTexCoord2f(0.0, 1.0);
glNormal3f(i, j, k);
glVertex3f(x, y, z);
x = cos(t+dt)*(param+cos(u+du));
y = sin(t+dt)*(param+cos(u+du));
z = height*(t+dt)+sin(u+du);
xs = cos(t+dt)*(param);
ys = sin(t+dt)*(param);
zs = height*(t+dt);
i = x - xs;
j = y - ys;
k = z - zs;
glTexCoord2f(1.0, 1.0);
glNormal3f(i, j, k);
glVertex3f(x, y, z);
x = cos(t)*(param+cos(u+du));
y = sin(t)*(param+cos(u+du));
z = height*(t)+sin(u+du);
xs = cos(t)*(param);
ys = sin(t)*(param);
zs = height*(t);
i = x - xs;
j = y - ys;
k = z - zs;
glTexCoord2f(1.0, 0.0);
glNormal3f(i, j, k);
glVertex3f(x, y, z);
glEnd();
}
}