Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1626 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [direct3D 9] rotation d'un cube a la souris ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[direct3D 9] rotation d'un cube a la souris ?

n°1548662
ChristianS​_
Posté le 25-04-2007 à 14:29:13  profilanswer
 

[Direct3D 9, Visual C++ win32, XP]
 
 
Hello a tous,
 
une question qui à l'air de rien mais qui me prend la tête un moment...bon ok, je débute avec direct3d :
 
J'ai un cube que je peux faire tourner avec la souris avec le code du style :
 

Code :
  1. D3DXMATRIX matWorld;
  2. D3DXMatrixRotationX(&matRotX, rotateX);
  3. D3DXMatrixRotationY(&matRotY, rotateY);
  4. D3DXMatrixRotationZ(&matRotZ, rotateZ);
  5. matWorld=matRotX*matRotY*matRotZ;
  6. g_pd3dDevice->SetTransform(D3DTS_WORLD, &matWorld);


 
où rotateX,Y,Z  varient en fonction de la souris.
 
et  
 

Code :
  1. // Positionement de la caméra
  2. D3DXVECTOR3 vEyePt    = D3DXVECTOR3(0.0f, 0.0f, -0.1f);
  3. D3DXVECTOR3 vLookatPt = D3DXVECTOR3(0.0f, 0.0f, 0.0f);
  4. D3DXVECTOR3 vUpVec    = D3DXVECTOR3(0.0f, 1.0f, 0.0f);
  5. D3DXMATRIX matView;
  6. D3DXMatrixLookAtLH(&matView, &vEyePt, &vLookatPt, &vUpVec);
  7. g_pd3dDevice->SetTransform(D3DTS_VIEW, &matView);


 
definit la vue de la caméra ( qui ne bouge pas ).
 
 
Bon, ceci fait bien tourner le cube, mais le problème est que ça fait aussi tourner les axes...
 
donc au début : si je tourne le cube avec un mouvement de souris de haut en bas, il tourne bien de haut en bas, mais ensuite, si je le fais tourner horizontalement, le mouvement de souris du haut vers le bas ne le fait plus tourner de haut en bas mais de droite à gauche !
 
comment faire pour que je puisse regarder au dessus du cube (par exemple) en faisant bouger la souris de haut en bas, quelque soit la position du cube ?
il faut jouer avec la vue ?
 
y'a t'il des exemples de code quelque part ?
 
 
Merci.

mood
Publicité
Posté le 25-04-2007 à 14:29:13  profilanswer
 

n°1550154
ptitchep
Posté le 26-04-2007 à 17:02:33  profilanswer
 

Salut.
Je ne fais pas de direct3D mais en openGL, je sauvegarderais la matrice de visualisation courante (pushMatrix) je chargerais la matrice qui permet la rotation (matWorld pour toi), je dessinerais le cube et ensuite je récupererais l'ancienne matrice (popMatrix).
Je dis pas que c'est la meilleure solution, ni que ça fonctionne pareil avec direct3D mais tu peux chercher dans cette direction...


---------------
deluser --remove-home ptitchep

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [direct3D 9] rotation d'un cube a la souris ?

 

Sujets relatifs
[OpenGL] La scène suit la sourisouverture popup au survol de la souris
Flash en mode transparence et capture des evenenements souris[direct3D 9] Reflexion d'un cube sur une surface plane ?
[wxWidgets] bouger la souris>>>survol d'un texte avec la souris<<<
[C++][QT] Récupérer le X et Y de la sourisFlash Texte déroulant au survol de la souris
Permuter une image au passage de la souris 
Plus de sujets relatifs à : [direct3D 9] rotation d'un cube a la souris ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR