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

OpenGL Discussion :

exercice en opengl


Sujet :

OpenGL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Par défaut exercice en opengl
    auriez vous une idée à ce sujet :

    http://www.google.fr/search?sourceid...m+vu+en+classe

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 818
    Par défaut
    google, c'est comme les femmes, il faut être subtil, et pas y aller comme un gros bourrin...

    http://www.google.fr/search?hl=fr&q=...thme+Bresenham


    Mais si vous l'avez vu en classe, tu dois déjà avoir toutes les infos...
    C'est quoi le problème exactement?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Par défaut
    merci pour votre reponse ...

    le probleme c'est de donné 1 programe qd tu le donne n il dévise notre triangle et j'ai pas encore trouvé l'idée.

  4. #4
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    je ne comprend ni le problème, ni la question
    il faudrait être plus explicite dans tes explications
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Par défaut

    tt est espliqué dans le lien.....

  6. #6
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    C'est un problème algorithmique d'abord avant de faire du rendu. Voici plus ou moins comment je découperais le problème.

    --- Un triangle
    - Créer une structure qui définit un triangle.
    - Créer une fonction qui affiche un triangle.
    - Créer une fonction qui divise un triangle en 3 sous-triangles.

    --- Une liste de triangles
    - Créer une structure qui peut contenir une liste de triangles.
    - Créer une fonction qui affiche les triangles d'une liste de triangles
    - Créer une fonction qui parcourt une liste de triangles et divise chaque triangle en trois sous-triangles, créant donc une nouvelle liste.

    --- Itération
    - Ecrire une fonction qui fait n itérations sur une liste de triangles.

    Jc

  7. #7
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    quel lien ?
    le premier ne mène à rien, le second mène à des articles sur l'algorithme de bresenham, qui est un algorithme de tracé de segments

    ce n'est en aucune façon un problème où une question à un problème
    je veux bien aider en répondant à une question ou un problème mais je ne vois pas quoi répondre à un lien google

    edit : au fait, quel est le lien avec opengl ?
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  8. #8
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 818
    Par défaut
    Citation Envoyé par shenron666 Voir le message
    [...] le second mène à des articles sur l'algorithme de bresenham[...]

    [...]je ne vois pas quoi répondre à un lien google [...]
    Ca, c'est juste un lien que j'ai donné en pensant qu'il avait un problème avec l'algo... et également avec une recherche google (vu l'allure de la requête... et en précisant qu'à l'époque on ne tombait sur aucun document... )


    Citation Envoyé par happy_1177
    tt est espliqué dans le lien.....
    Cela ne t'empêche pas de nous expliquer ce qui te bloque, et ce que tu as fait...
    Tout est expliqué dans le lien...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Par défaut
    voila tt :

    Vous devez généraliser et implanter l’algorithme de Bresenham vu en classe. À l’aide de cet algorithme, vous devrez réaliser une application simple qui consiste à afficher un triangle subdivisé n fois.

    En partant d’un triangle ABC, la première itération (n=1) consiste à subdiviser le triangle en quatre triangles. Cette division est réalisée en joignant les points milieux P, Q et R respectivement de AB, AC et BC.

    La deuxième itération (n=2) consiste à subdiviser de la même façon les trois triangles APQ(1), PBR(2), QRC(3), le triangle PQR(4) ne doit subir aucune subdivision, et ainsi de suite pour les autres triangles.

    Il faut réfléchir à une fonction récurrente pour diviser le triangle n fois (diviserTriangle).
    Fonctions à coder:

    1. Une fonction est réservée pour écrire le code de traçage de segment de droite par la méthode de Brensenham (tracerDroiteBresenham).
    2. Une fonction est réservée pour écrire l’algorithme qui permet de diviser le triangle n fois (diviserTriangle).
    3. Une fonction est réservée pour afficher un triangle. Cette fonction doit servir à appeler la fonction tracerDroiteBresenham(), (afficheTriangle).


    Squelette :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    /*
    Tp1.cpp 
     
    */
    #include <iostream.h>
    #include "glut.h"
    #include "math.h"
     
    int n ; 
    void init(int w, int h)
    {
    	glViewport(0, 0, (GLdouble)w, (GLdouble)h);
    	glMatrixMode(GL_PROJECTION);
    	glLoadIdentity();
    	gluOrtho2D(0, (GLdouble)w, 0, (GLdouble)h);
    	glMatrixMode(GL_MODELVIEW);
    	glLoadIdentity();
    	glClearColor(0.0, 0.0, 0.0, 0.0);
    	glColor3f(1, 0, 0);
    }
    void	tracerDroiteBresenham(int x1, int y1, int x2, int y2)
    {	
    }
    void 	afficheTriangle(int x1, int y1, int x2, int y2, int x3, int y3)
    {
    }
    void	diviserTriangle(int x1, int y1, int x2, int y2, int x3, int y3, int n)
    {
    }
    void 	afficher()
    {
    	glClear(GL_COLOR_BUFFER_BIT);	
    	diviserTriangle(0,0,200,200,400,0,n) ; 	
    	glFlush();
    }
     
    int main(int argc, char** argv)
    {
    	glutInit(&argc, argv);
    	cout << "Donnez la valeur de n : " ; 
    	cin >> n ;
    	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
    	glutInitWindowSize(400, 400);
    	glutInitWindowPosition(100, 100);
    	glutCreateWindow("TP1");
    	init(400, 200);
    	glutDisplayFunc(afficher);
    	glutMainLoop();	
    	return 0;
    }
    ------------------------
    voila le lien ou tt est expliqué avec les shemas

  10. #10
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Par défaut
    voila le lien


    voila ce que j'ai fait :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    /*
    Tp1.cpp 
     
    */
    #include <iostream.h>
    #include "glut.h"
    #include "math.h"
     
    int n ; 
    void init(int w, int h)
    {
        glViewport(0, 0, (GLdouble)w, (GLdouble)h);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluOrtho2D(0, (GLdouble)w, 0, (GLdouble)h);
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glClearColor(0.0, 0.0, 0.0, 0.0);
        glColor3f(1, 0, 0);
    }
    // programe apart 
    void pixel(int x, int y) {
        glBegin(GL_QUADS) ;
        glVertex2i(x,y) ;
        glVertex2i(x+1,y) ;
        glVertex2i(x+1,y+1) ;
        glVertex2i(x,y+1) ;
        glEnd() ;
    }
    void    tracerDroiteBresenham(int x1, int y1, int x2, int y2)
    /*{    
        glBegin(GL_TRIANGLES);        // Dessiner un Triangle
            glVertex3f( 0.0f, 1.0f, 0.0f);    // Point du haut
            glVertex3f(-1.0f,-1.0f, 0.0f);    // Point en bas à gauche
            glVertex3f( 1.0f,-1.0f, 0.0f);    // Point en bas à droite
        glEnd();                        // Le dessin du Triangle est fini
     
    }*/
     
    void lignePixels(int xi,int yi,int xf,int yf) {
     
        int x = xi ;
        int y = yi ;
        int dx = abs( xf - xi );
        int dy = abs(yf - yi) ;
        int Pi = 2dy-dx ;
     
        pixel(x,y) ;
        for ( x = xi+1 ; x <= xf ; x++ )
            if (Pi<0) {
                yi+1= yi ;
                Pi+1 = Pi+2dy; }
            else {
                yi+1+= 1 ;
                Pi+1 = Pi+2dy-2dx; }
     
        }
     
    /*void dessineSegment(float *c,segment *s) {
        glColor4fv(c) ;
        glLineWidth(3.0) ;
        glBegin(GL_LINES) ;
        glVertex2d(s->pi.x+0.5,s->pi.y+0.5);
        glVertex2d(s->pf.x+0.5,s->pf.y+0.5);
        glEnd() ;
        glLineWidth(1.0) ;
    }*/
     
    void     afficheTriangle(int x1, int y1, int x2, int y2, int x3, int y3)
    {
        tracerDroiteBresenham(int x1, int y1, int x2, int y2);
        tracerDroiteBresenham(int x1, int y1, int x3, int y3);
        tracerDroiteBresenham(int x3, int y3, int x2, int y2);
    }
    void    diviserTriangle(int x1, int y1, int x2, int y2, int x3, int y3, int n)
    {
     
    }
    void     afficher()
    {
        glClear(GL_COLOR_BUFFER_BIT);    
        diviserTriangle(0,0,200,200,400,0,n) ;     
        glFlush();
    }
     
    int main(int argc, char** argv)
    {
        glutInit(&argc, argv);
        cout << "Donnez la valeur de n : " ; 
        cin >> n ;
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
        glutInitWindowSize(400, 400);
        glutInitWindowPosition(100, 100);
        glutCreateWindow("TP1");
        init(400, 200);
        glutDisplayFunc(afficher);
        glutMainLoop();
        return 0;
    }

  11. #11
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Humm, on ne pourra jamais aider sérieusement si tu nous dis pas où tu bloques sérieusement. On ne fera pas le travail à ta place, cela n'est pas le but de ce forum et ne l'a jamais été.

    Par contre, si tu nous dis
    cette fonction est difficile à écrire, j'aimerais qu'elle fasse ceci mais j'ai tenté cela
    Là, on peut aider.

    Jc

Discussions similaires

  1. Directx ou opengl
    Par scorpiwolf dans le forum DirectX
    Réponses: 13
    Dernier message: 07/02/2003, 08h29
  2. Pouvez vous m'aider a resoudres ces 3 exercices
    Par algorithmique dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 09/08/2002, 17h26
  3. OpenGL et *.3ds
    Par tintin22 dans le forum OpenGL
    Réponses: 4
    Dernier message: 06/05/2002, 13h51
  4. OpenGL ou DirectX
    Par Nadir dans le forum DirectX
    Réponses: 6
    Dernier message: 02/05/2002, 12h48
  5. Opengl -- Les surfaces
    Par Anonymous dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/05/2002, 10h14

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