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

C++ Discussion :

Application C++ avec OpenGL


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Par défaut Application C++ avec OpenGL
    Bonjour à tous !

    Je dois développer pour mon université une application en C++ qui implémenterait l’algorithme A-Star ainsi qu'un Decision Tree, mais je n'ai aucune base en C++.

    Heureusement je connais bien le langage JAVA , mais j'ai quelques soucis de "débutant" et j'aurais besoin de conseils.

    Concrètement, je souhaite créer des abeilles (de simples triangles) qui vont se déplacer vers des fleurs (certaines cases d'une grille) en utilisant l'algorithme A-Star, avec la librairie OpenGL.

    Je possède d'ors et déjà un main qui instancie ma grille, l'algorithme A Star (mais pas relié aux abeilles), ainsi qu'une classe myBee qui affiche une abeille.

    Ma question (Ouf ), j'aimerais savoir si je pars dans la bonne direction en voulant créer une fonction updatePosition dans ma classe myBee afin de calculer sa nouvelle position ? Devrais-je ensuite rappeler ma fonction drawBee afin que celle-ci soit en quelque sorte en train de bouger ? Et comment intégrer mon algorithme A-Star au milieu de tout ce processus ?

    Merci pour vos réponses éclairées je vous suis d'avance très reconnaissant

  2. #2
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    Salut,
    Pour la création de petit projet en OpenGL l'utilisation de GLUT est un bon gain de temps.
    Âpres tu implante des callbacks :
    • glutDisplayFunc : tu appel les primitives pour le rendu
    • glutIdleFunc : effectuer les algos de déplacement

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    GLUT n'étant pas maintenue depuis 1998, j'utilise pour ma part glfw pour créer un contexte OpenGL aisément.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    1998! sa donne un coup de vieux...
    Bon en tous cas sa tourne bien sous mon 386

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 113
    Billets dans le blog
    147
    Par défaut
    Bonjour,

    Pour l'histoire de GLUT, c'est pour cela que maintenant nous conseillons FreeGLUT (mis à jour récemment, licence plus libre ...)

    Pour le problème de lightalex01, oui, vous pouvez faire de la sorte (avec la méthode updatePosition dans myBee).
    Mais vous pouvez aussi dire que ce serait l'algorithme A-Star qui bougerai les abeilles (en utilisant une fonction setBeePosition()). Ou alors, l'abeille pourrait questionner le A Star, pour récupérer la prochaine position et l'utiliser si elle le veut vraiment. Plusieurs choix son possibles.
    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.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Par défaut
    Tout d'abord merci pour vos réponses !

    Mais vous pouvez aussi dire que ce serait l'algorithme A-Star qui bougerai les abeilles (en utilisant une fonction setBeePosition())
    J'aimerais partir la dessus, mais je ne sais pas exactement quoi faire. J'ai pour l'instant une fonction au sein de ma classe MyBee qui est la suivante :

    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
     
    void const MyBee::displayBee(const MyBee& rls)
    {
    	glBegin(GL_TRIANGLES);
    	glColor3f(1,1,1);
    		glVertex3f( 0.0f, 1.0f, 0.0f);	
            glVertex3f(-1.0f,-1.0f, 0.0f);	
            glVertex3f( 1.0f,-1.0f, 0.0f);
    	glEnd();
     
    	//draw the X and Y axis
    	glBegin(GL_LINES);
    		glVertex2i(0,0);glVertex2i(0,1);
    		glVertex2i(0,0);glVertex2i(1,0);
    	glEnd();
    }
    Et je ne sais pas quoi faire avec cela afin de "modifier la position" de mon abeille... Que devrais je passé à ma fonction setBeePosition de l'algorithme A-Star ? Puis quelles fonctions utiliser afin de redessiner l'abeille ?

    Merci d'avance pour votre aide !

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Août 2011
    Messages : 342
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,
    Pour le problème de lightalex01, oui, vous pouvez faire de la sorte (avec la méthode updatePosition dans myBee).
    Mais vous pouvez aussi dire que ce serait l'algorithme A-Star qui bougerai les abeilles (en utilisant une fonction setBeePosition()). Ou alors, l'abeille pourrait questionner le A Star, pour récupérer la prochaine position et l'utiliser si elle le veut vraiment. Plusieurs choix son possibles.
    D'un point de vue modélisation la première approche est horrible : l'algo A* doit avoir connaissance d'une abeille...
    De même, l'abeille ne doit pas avoir connaissance de l'algo a*, il faut un troisième élément qui mette tout ça en relation.

    Idem pour le code OpenGL, il ne doit pas se trouver dans la classe abeille. Si demain tu apsses sous d3d, tu dois modifier la classe abeille ? Quel est le rapport entre une abeille et d3d / opengl ?

    Message un peu dur, mais ne pas oublier les bases de la modélisation objet même quand on traite des projets plus "ludiques" (dans le sens affichage graphique et IA). Bien au contraire même, ça permet d'offrir/tester de multiples options beaucoup plus facilement.

Discussions similaires

  1. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 18h55
  2. Réponses: 2
    Dernier message: 26/05/2003, 19h42
  3. [Kylix] application console avec kylix 3 ?
    Par Hakim dans le forum EDI
    Réponses: 4
    Dernier message: 15/11/2002, 22h45
  4. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27

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