j'ai bien chercher mais j'ai rien trouvé :( ce que je veux savoir c'est comment faire bouger ce tunnel avec cette maniere , je veux savoir la technique c tt , je veux ni texture ni autre , seulement creer un tunnel bouge de cette facon , aidé moi svp
Pour ce qui est dessin du Tunnel.
Le code complet étant fournit dans Tunnel.dpr
procedure glDraw();
var I, J : Integer;
C, J1, J2 : glFloat;
begin
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
glLoadIdentity(); // Reset The View
glTranslatef(0.0,0.0,-4.2);
if Manual then
Angle :=Angle + speed
else
Angle :=ElapsedTime/14;
// setup tunnel coordinates
for I :=0 to 12 do
begin
for J :=0 to 32 do
begin
Tunnels[I, J].X :=(3 - J/12)*cos(2*pi/12*I) + 2*sin((Angle+2*j)/29) + cos((Angle+2*j)/13) - 2*sin(Angle/29) - cos(Angle/13);
Tunnels[I, J].Y :=(3 - J/12)*sin(2*pi/12*I) + 2*cos((Angle+2*j)/33) + sin((Angle+2*j)/17) - 2*cos(Angle/33) - sin(Angle/17);
Tunnels[I, J].Z :=-J;
end;
end;
// draw tunnel
For J :=0 to 30 do
begin
J1 :=J/32 + Angle*TEXTURE_SPEED; // precalculate texture v coords for speed
J2 :=(J+1)/32 + Angle*TEXTURE_SPEED;
// near the end of the tunnel, fade the effect away
if J > 24 then
C :=1.0-(J-24)/10
else
C :=1.0;
glColor3f(C, C, C);
glBegin(GL_QUADS);
For I :=0 to 11 do
begin
glTexCoord2f((I-3)/12, J1); glVertex3f(Tunnels[ I, J ].X, Tunnels[ I, J ].Y, Tunnels[ I, J ].Z);
glTexCoord2f((I-2)/12, J1); glVertex3f(Tunnels[I+1, J ].X, Tunnels[I+1, J ].Y, Tunnels[I+1, J ].Z);
glTexCoord2f((I-2)/12, J2); glVertex3f(Tunnels[I+1, J+1].X, Tunnels[I+1, J+1].Y, Tunnels[I+1, J+1].Z);
glTexCoord2f((I-3)/12, J2); glVertex3f(Tunnels[ I, J+1].X, Tunnels[ I, J+1].Y, Tunnels[ I, J+1].Z);
end;
glEnd();
end;
end;
merci pour l'aide , mais moi j'ai besoin de quelque explication sur le code , la partie // setup tunnel coordinates
on fait un tableau puis en calcule x,y,z ce que j'ai pas compris c'est les 4 parties de calcule :
partie 1 de Tunnels[I, J].X :
(3 - J/12)*cos(2*pi/12*I) on calcule quoi ??? :():
partie 2 de Tunnels[I, J].X :
2*sin((Angle+2*j)/29) on calcule quoi ici ??? :():
partie 3 de Tunnels[I, J].X :
cos((Angle+2*j)/13) - 2*sin(Angle/29) on calcule quoi ici ??? :():
partie 4 de Tunnels[I, J].X :
cos(Angle/13) on calcule quoi ici :():
c'est tt le reste de code est tres simple , ah j'ai 1 maitrise du cos et le sin et le pi je veux seulement savoir c'est quoi ces 4 cordonnés c'est tt merci pour votre reponce et pour votre aide aussi