Bonjour, je commence a coder un programme en OpenGL avec Delphi (je debute en infographie). J'ai enfin reussi a faire apparaitre un superbe cube en 3D, et a faire des translations avec le clavier, et j'en suis arrive aux rotations dans l'espace que j'ai reussi a coder assez facilement.
Le probleme maintenant :
avec les translations il n'y avait pas de problemes, tout se passait comme je le voulais
depuis que j'ai mis les rotations, le probleme est que mon repere se deplace, et que si je fait une rotation a 180 degres par exemple, ma touche qui servait a avancer servira a reculer ....
voici mes fonctions :
Translation :
procedure trans_cam(a : real);
begin
if (glfwgetkey(90) = 1) or (glfwgetkey(87)= 1) then // W et Z
gltranslate(a,0,0);
if (glfwgetkey(65) = 1) or (glfwgetkey(81)= 1) then //A et Q
gltranslate(0,-a,0);
if (glfwgetkey(83) = 1) then //S
gltranslate(a,0,0);
if (glfwgetkey(68) = 1) then //D
gltranslate(0,a,0);
end;
Rotation :
Si quelqun pouvait m'eclairer sur ce point ca serait superprocedure mouv_mouse(sensi_mouse : real);
var
x_m, y_m, angle_x, angle_y : integer;
begin
glfwGetMousePos(x_m, y_m);
glfwSetMousePos(400,300);
angle_x := x_m-400;
angle_y := y_m-300;
if (angle_x<>0) or (angle_y<>0) then
begin
glrotate(sensi_mouse*angle_x,0,0,1);
glrotate(-sensi_mouse*angle_y,0,1,0);
end;![]()
Partager