[C/Opengl] coordonnés et objets ?

coordonnés et objets ? [C/Opengl] - C++ - Programmation

Marsh Posté le 15-05-2003 à 11:06:25    

Bonjour,
j'ai un probleme de repere dans l espace en opengl et je ne vois pas d ou cela peut venir
explication:
je simplifie au maximun. En gros je cree une fenetre de x sur y pixels et je souhaite delimiter par des cubes cette zone :
 
fenetre :  
 
 Y
/|\
  |
  |
  |
  |
  |
  |
  |                              
   ----------------------------> X
 
encadrement de la fenetre pour une aire de jeu: par des cubes (pas de transformations en Z)
 
 Y
/|\[][][][][][][][][][][][][][][]
  | []                          []
  | []                          []
  | []                          []
  | []                          []
  | []                          []
  | []                          []
  | [][][][][][][][][][][][][][][]                            
   ----------------------------> X
 
logiquement je me dis que je vais faire une translation depuis l origine de la fenetre (0.0, 0.0) vers la postion en haut a gauche soit (0.0, winy). je suis en 0.0 donc j applique une transformation de matrise avc glTraslatef(-winx/2, winy/2);
et je ne me retrouve pas au point voulu mais a perpette hors de ma fenettre, pkoi dont?
la taille de la fenetre et les deplacements ne sont ils pas fait sur la meme echelle?


Message édité par Helter-skelter le 15-05-2003 à 11:09:58
Reply

Marsh Posté le 15-05-2003 à 11:06:25   

Reply

Marsh Posté le 15-05-2003 à 11:22:20    

Euuuh ... WinX et WinY n'ont rien à faire là pour ton problème ...
 
Ca dépend de ton viewport ...
 
En fonction de l'angle de vision, tu dois pouvoir déterminer (en fonction de l'éloignement par rapport à l'écran) les coordonnées X et Y de tes cubes pour qu'ils soient à la limite du bord ...
 
(à moins qu'il y ait une technique plus simple dont je n'ai pas connaissance ....)
 
Edit Typo ...


Message édité par theshockwave le 15-05-2003 à 11:22:38

---------------
last.fm
Reply

Marsh Posté le 15-05-2003 à 11:23:35    

ok, le probleme est ke les axes en opengl sont:
                          Y
                          |
                          |
                          |
                          |
                          |
                         / \
                        /   \
                       /     \
                   Z /       \ X
 
suis pas parti sur une bonne base :lol:  
 
QQn q une idee pour resoudre mon nouveau pb?


Message édité par Helter-skelter le 15-05-2003 à 11:24:42
Reply

Marsh Posté le 15-05-2003 à 11:26:21    

Tu ne nous dis pas assez de choses là...
1) Quelles sont les coordonnées dans l'espace du rectangle que tu souhaites encadrer par tes cubes?
2) Qu'est-ce que tu appelles "a perpette hors de ta fenetre"?
Tu ne vois pas ce que tu dessines? Si c'est cela, ou est-ce que ta caméra regarde?

Reply

Marsh Posté le 15-05-2003 à 11:33:05    

skeye a écrit :

Tu ne nous dis pas assez de choses là...
1) Quelles sont les coordonnées dans l'espace du rectangle que tu souhaites encadrer par tes cubes?
2) Qu'est-ce que tu appelles "a perpette hors de ta fenetre"?
Tu ne vois pas ce que tu dessines? Si c'est cela, ou est-ce que ta caméra regarde?
 


1) les coordones des rectangles dependent de la taille de la fenetre (determinee par la taille de la zone de jeu, en param dans le shell a l execution, fenetre = zone_de_jeu * 10 (x * 10, y * 10)). les deplqcements dans le jeu ce font sur les axes x et y seulement.
ce que je souhaiterai faire c 'est "encadrer" ma fenetre avc des cubes (vu de haut en apparence 2d pour le moment) pour delimiter une zone de jeu.
2) oui je ne vois pas ce ke je dessine. je regarde toujours dans la dirrection par default (0.0, 0.0, 0.0)
 
(et desole ct effectivement pas tres precis  :) )


Message édité par Helter-skelter le 15-05-2003 à 11:38:06
Reply

Marsh Posté le 15-05-2003 à 11:40:50    

Helter-Skelter a écrit :


1) les coordones des rectangles dependent de la taille de la fenetre (determinee par la taille de la zone de jeu, en param dans le shell a l execution, fenetre = zone_de_jeu * 10 (x * 10, y * 10)). les deplqcements dans le jeu ce font sur les axes x et y seulement.
ce que je souhaiterai faire c 'est "encadrer" ma fenetre avc des cubes (vu de haut en apparence 2d pour le moment) pour delimiter une zone de jeu.
2) oui je ne vois pas ce ke je dessine. je regarde toujours dans la dirrection par default (0.0, 0.0, 0.0)
 
(et desole ct effectivement pas tres precis  :) )  


ok...j'avais mal compris ce que tu voulais faire...
Bon ca doit pas être compliqué:
1) Tu as la taille de ta fenetre
2) z est fixe et tu connais la position, ainsi que l'angle et la direction de vue de ta caméra (puisque c'est toi qui les fixes). Tu peux donc en déduire les frontières de la partie visible du plan parallèle à (xy) passant par z...non?
 
Je te conseille de faire un dessin, au final c'est un pb de géométrie tout con... ;)

Reply

Marsh Posté le 15-05-2003 à 11:42:06    

skeye a écrit :


ok...j'avais mal compris ce que tu voulais faire...
Bon ca doit pas être compliqué:
1) Tu as la taille de ta fenetre
2) z est fixe et tu connais la position, ainsi que l'angle et la direction de vue de ta caméra (puisque c'est toi qui les fixes). Tu peux donc en déduire les frontières de la partie visible du plan parallèle à (xy) passant par z...non?
 
Je te conseille de faire un dessin, au final c'est un pb de géométrie tout con... ;)  


g toujours ete nul en geometrie  :pt1cable:   :)

Reply

Marsh Posté le 15-05-2003 à 12:05:50    

Helter-Skelter a écrit :


g toujours ete nul en geometrie  :pt1cable:   :)  


Mettons que le plan dans lequel tu veux dessiner tes rectangle c'est z = 0 (plus simple).
Tu mets ta caméra en (0, 0, N), et tu la fais regarder vers (0,0,0) avec y en haut et un angle de vision A.
En gros ca va te donner ca en dessinant(j'espere que la mise en page va rester...), l'axe des x pointant vers toi:


                      +y
                       |
                       |
                       |
   +                   |(0,0,0)
(0,0,N)               |
                       |
                       |
                       -y
                     
 


Tu peux faire exactement le même dessin en inversant x et y...
Ca devrait suffire non?


Message édité par skeye le 15-05-2003 à 12:06:10
Reply

Marsh Posté le 15-05-2003 à 12:17:40    

skeye a écrit :


Mettons que le plan dans lequel tu veux dessiner tes rectangle c'est z = 0 (plus simple).
Tu mets ta caméra en (0, 0, N), et tu la fais regarder vers (0,0,0) avec y en haut et un angle de vision A.
En gros ca va te donner ca en dessinant(j'espere que la mise en page va rester...), l'axe des x pointant vers toi:


                      +y
                       |
                       |
                       |
   +                   |(0,0,0)
(0,0,N)               |
                       |
                       |
                       -y
                     
 


Tu peux faire exactement le même dessin en inversant x et y...
Ca devrait suffire non?


 
ca devrai aller  :jap:

Reply

Marsh Posté le 15-05-2003 à 15:51:59    

Helter-Skelter a écrit :


 
ca devrai aller  :jap:  


en fait ca va pas  :D

Reply

Marsh Posté le 15-05-2003 à 15:51:59   

Reply

Marsh Posté le 15-05-2003 à 15:53:08    

Helter-Skelter a écrit :


en fait ca va pas  :D  


c'est quoi le problème?

Reply

Marsh Posté le 15-05-2003 à 17:18:07    

skeye a écrit :


c'est quoi le problème?


j arrv pas a me reperer, et a faire des transformations

Reply

Marsh Posté le 15-05-2003 à 17:25:25    

Helter-Skelter a écrit :


j arrv pas a me reperer, et a faire des transformations


 :??:

Reply

Marsh Posté le 15-05-2003 à 17:47:08    


ca ira mieux des ke j aurrai mange :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed