IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

[c++ opengl] Afficher un trapèze dans la mini carte


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre régulier Avatar de ia.jenny
    Profil pro
    Inscrit en
    Août 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 152
    Points : 78
    Points
    78
    Par défaut [c++ opengl] Afficher un trapèze dans la mini carte
    Bonjour,
    Je n’arrive pas à afficher le trapèze dans la mini carte en fonction du zoom.
    Pièce jointe 410246
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gluLookAt(StepX, StepY-StepZ ,StepZ, StepX,StepY,0,	0,1,0);

    Résolution de la fenêtre du jeux 800x600 ou 1920x1080, etc...

    Résolution de la grande carte 3D fait 30carrés x 50pixels soit une dimension 1500x1500

    La mini carte 2D fait 150x150 quelque soit la résolution de la fenêtre du jeux.

    J’arrive juste à afficher le centre du trapèze.
    Comment faire, pour connaitre les 4 dimensions du trapèze ?
    Si une personne à déjà réalisé ceci, je voudrais bien connaitre la méthode utilisée.
    un tuto, un morceau de codes, etc...

    Merci beaucoup

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Je répond mais j'ai pas de résolution parfaite a ton souci ^^'

    La façon la plus simple serait de le faire de façon empirique :p

    Si tu veux vraiment savoir ce que tu regarde , il ne faut pas utiliser glu et glrotatef/gltranslatef etc , et manipuler les matrices de Projection et de View a la main , ça te permettra de savoir ce que tu regarde avec plus de précision
    Je pensais plutôt de mettre des 'points' a chaque intersection(ou a chaque moitié de quad) de ta grille et voir si elle se trouve dans le champs visuels de ta caméra.

  3. #3
    Membre régulier Avatar de ia.jenny
    Profil pro
    Inscrit en
    Août 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 152
    Points : 78
    Points
    78
    Par défaut
    Merci d'avoir répondu
    Je vais attente d'autre suggestions, et chercher de mon coté

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    J'imagine qu'il est possible de déformer un carré en trapèze avec les matrices de transformation (comme le ferai GIMP ou autre). En plus, c'est en 2D, donc c'est sensé être plus simple. Il "suffirait" d'appliquer les transformations appliquées à la caméra, mais en enlevant la hauteur.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre régulier Avatar de ia.jenny
    Profil pro
    Inscrit en
    Août 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 152
    Points : 78
    Points
    78
    Par défaut
    GLM ne fonctionne pas avec Visual Studio 2008.
    Je n'arrive pas le faire avec gluUnProject.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    double objx0,objy0,objz0; 
    double objx1,objy1,objz1; 
    double objx2,objy2,objz2; 
    double objx3,objy3,objz3; 
     
    GLdouble modelview[16],projection[16];
    GLint viewport[4];
    float z=0;
    glGetDoublev(GL_PROJECTION_MATRIX,projection);
    glGetDoublev(GL_MODELVIEW_MATRIX,modelview);
    glGetIntegerv(GL_VIEWPORT,viewport);
     
    gluProject(0,0,    0,modelview, projection, viewport, &objx0, &objy0, &objz0 );
    gluProject(SCREEN_WIDTH,0,0,  modelview, projection, viewport, &objx1, &objy1, &objz1 );
    gluProject(SCREEN_WIDTH,SCREEN_HEIGHT,    0,modelview, projection, viewport, &objx2, &objy2, &objz2 );
    gluProject(0,SCREEN_HEIGHT,0,  modelview, projection, viewport, &objx3, &objy3, &objz3 );
     
     
    Draw_trapeze(objx0/150, objy0/150 , objx1/150, objy1/150 , objx2/150, objy2/150 ,objx3/150, objy3/150);
    Je ne sais pas pourquoi, ça ne fonctionne pas. Un truc que je n'ai pas compris
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] afficher une ProgressBar dans une barre d'etat
    Par guillaume21 dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2007, 11h16
  2. Réponses: 3
    Dernier message: 28/01/2004, 14h55
  3. Afficher le caractere '%' dans Flash
    Par jeffbobo dans le forum Flash
    Réponses: 6
    Dernier message: 11/12/2003, 17h40
  4. Comment afficher FLASH directement dans le EMAIL
    Par Bilmagic dans le forum Flash
    Réponses: 3
    Dernier message: 05/06/2003, 00h38
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo