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

  FORUM HardWare.fr
  Programmation

  [Opengl] Comment faire du DRAG and DROP ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Opengl] Comment faire du DRAG and DROP ?

n°40301
drakkeng
Posté le 16-06-2001 à 10:56:37  profilanswer
 

J'aimerai bouger des objets élémentaires comme des sphéres ou des cubes a la souris quelle est la meilleur solution avec Glut (ou sans ) ?
J'ai une autre petite question comment efface t-on un objet de l'écran ?
 
 
merci

mood
Publicité
Posté le 16-06-2001 à 10:56:37  profilanswer
 

n°40348
tgrx
My heart is pumping for love
Posté le 16-06-2001 à 20:49:10  profilanswer
 

Et bien desole... mais c'est franchement loin d'etre simple...
 
La methode, c'est de lancer un rayon dans l'espace dont l'origine correspond a la position de ta souris dans ta fenetre, et dans la direction "perpendiculaire" a ta fenetre (parce que ta fenetre n'est jamais qu'un rectangle dans l'espace, dont la position depend de la position de l'utilisateur).
Fais une recherche sur frustum, ca pourra t'aider pour te representer tout ca et trouver le rayon correspondant.
 
Ensuite tu testes l'intersection de ce rayon avec tous tes objets, et tu prends le plus proche. Et la, tu as l'objet le plus proche. Un moyen efficace de tester cette intersection (si tu as beaucoup d'objets) est de faire un partitionnement de l'espace avec un BSP tree... mais ca nous emmene un peu loin.
 
Donc c'est assez chaud... desole mais refaire un programme a la 3DSMax n'est pas trivial...

n°40349
tgrx
My heart is pumping for love
Posté le 16-06-2001 à 20:50:43  profilanswer
 

Et pour effacer un objet de l'ecran, il suffit de ne pas l'afficher :)
Car ta fonction display() est appelee a chaque nouvelle image/frame...

n°40355
drakkeng
Posté le 16-06-2001 à 22:06:03  profilanswer
 

je comprends mieux pourquoi on voit jamais de petit jeux opengl qui gére le dragN'drop !!!
C'est clair que c'est pas gagné .
 
merci

n°40356
tgrx
My heart is pumping for love
Posté le 16-06-2001 à 22:08:44  profilanswer
 

Si tu n'as pas trop d'objets, le plus simple est d'assigner des touches aux objets que tu veux bouger...
 
par ex, les fleches sont pour la position de l'oeil, les touches ijkl pour deplacer ta sphere, etc... :)

n°40439
janoscoder
Posté le 17-06-2001 à 16:45:26  profilanswer
 

sinon, comme tu ne cherches à faire qu'un seul lancer de rayon pour trouver l'intersection entre l'epipolaire du pointeur de la souris (la demi-droite qui part de la caméra et passe par le pointeur de la souris), tu n'es pas obligé de faire un code avec recherche logarithmique comme un BSP. Il suffit (enfin ça reste pas trivial) de regarder lors de l'affichage, si le pixel du pointeur appartient au triangle affiché. Tu notes la distance d'intersection, et tu gardes l'objert qui donne la plus petite distance. T'as deux/trois fonctions à écrire, mais ce genre de code, c'est quand t'as pas l'habitude, une mine de bugs et de cas particuliers. Donc, comme le dit tgrx, si t'en a pas vraiment besoin, passe-t-en.


---------------
-----------------------

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

  [Opengl] Comment faire du DRAG and DROP ?

 

Sujets relatifs
[mandrake8] comment installer Opengl et GLUT ?[C++] OpenGL
A tous les programmeurs 3D, sbires de Windows ou du consortium OpenGL![opengl]Comment faire du 2d en opengl??
polemique : Direct3D ou OpenGL?[c++/OpenGL] Pbl de Z-buffer
[C++][OpenGL] Extensions de m....pb opengl
[opengl] Afficher un image[C++ OpenGL ASM32] cherche de la doc pour faire des effets speciaux
Plus de sujets relatifs à : [Opengl] Comment faire du DRAG and DROP ?


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