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

 


Dernière réponse
Sujet : [Opengl] Comment faire du DRAG and DROP ?
janoscoder 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.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
janoscoder 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.
tgrx 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... :)
drakkeng 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
tgrx 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...
tgrx 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...
drakkeng 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

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)