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

Interfaces Graphiques en Java Discussion :

probleme d'affichage en jogl


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Points : 37
    Points
    37
    Par défaut probleme d'affichage en jogl
    Voila en suivant des tutoriel de Jogl j'ai esayer d'utiliser les fonction d'afficgae de triangle en 2d mais rien ne s'affiche
    Je voulais donc savoir se qui va pas...
    Voila le code

    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
    100
    101
    102
    103
    104
    105
    106
    107
     
    package test;
     
    //Importer les fonctions openGL
    import javax.media.opengl.*;
    import java.lang.Math;
     
    import javax.media.opengl.glu.*;
     
    //Importer les bibliotheque graphique
    import java.awt.event.*;
     
    public class GLSimpleFenetre implements GLEventListener, KeyListener {
     
    	Dessin dessin;
     
    	public GLSimpleFenetre(Dessin dessin){
    		this.dessin = dessin;
    	}
     
    	//La méthode init est appeler par le GLAutoDrawable dès que le 
    	//contexte OpenGL a été initialiser
    	public void init(GLAutoDrawable gLDrawable){
    		final GL gl = gLDrawable.getGL();
     
    		//Type de rendu, pour ce cas-là on utilise le flat shading
    		gl.glShadeModel(GL.GL_SMOOTH);
     
    		//Couleur de fond (rouge, vert, bleu, alpha) en float
    		gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
     
    		//On assigne l'objet courant a un KeyListener
    		gLDrawable.addKeyListener(this);
    	}
     
    	public void display(GLAutoDrawable gLDrawable){
     
    		System.out.println("bonsoirs");
     
    		//GL contient toutes les methodes de base d'openGL
    		 final GL gl = gLDrawable.getGL();
     
    		//Nettoyage des buffers de couleurs activé et de profondeur
    		gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
     
    		//Remplace la matrice courante par la matrice identité
    		gl.glLoadIdentity();
     
    		gl.glTranslatef(-1.5f,0.0f,-6.0f);
     
    		//On appelle la methode qui va dessiner un triangle
    		dessin.triangle(gl);
     
    		gl.glFlush();
    	}
     
     
    	//méthode displayChanged(GLAutoDrawable,boolean,boolean) E
    	//Elle est appeler losrqu'il y a un un changement du mode d'affichage
    	//(resolution,driver,peripherique video, nombres de couleurs,...)
    	public void displayChanged(GLAutoDrawable gLDrawable, boolean modeChanged, boolean deviceChanged){}
     
     
     
    	//méthode reshape(GLAutoDrawable,int coordonnee x,int coordonnee y,int largeur,int hauteur)
    	//Elle est appeler par le GLAutoDrawable a chaque reaffichage du composant apres aoir été redimensionnée
    	public void reshape(GLAutoDrawable gLDrawable,int x,int y, int largeur, int hauteur){
     
    		final GL gl = gLDrawable.getGL();
     
    		//GLU contient des fonctionnalité supplémentaire
    		final GLU glu = new GLU();
     
    		//On evite d'avoir une division par 0 pour le calcul de "l'aspect ratio"
    		if (hauteur <= 0)
    			hauteur=1;
     
    		//on donne une valeur final a l'aspect sans oublier de caster hauteur et largeur
    		final float aspect = (float)largeur/(float)hauteur;
     
    		//on vide la matrice courante
    		gl.glMatrixMode(GL.GL_PROJECTION);
    		gl.glLoadIdentity();
     
    		//Vue perspective, les parametre sont (angle en degres, aspect, 
    		//distance utilisateur-plan focal, distance utilisateur-plan objet)
    		glu.gluPerspective(45.0f, aspect, 1.0, 20.0);
     
    		//On reset la pile MODELVIEW
    		gl.glMatrixMode(GL.GL_MODELVIEW);
    		gl.glLoadIdentity();
    	}
     
    	//appeler lorsqu'une touche est pressé
    	public void keyPressed(KeyEvent e){
    		//si la touche taper est echap alors on sort de l'application
    		if(e.getKeyCode() == KeyEvent.VK_ESCAPE)
    			System.exit(0);
    	}
     
    	//Appeler losqu'une touche est relachée
    	public void keyTyped(KeyEvent e){}
     
    	//Appeler lorsqu'une touche a étét taper
    	public void keyReleased(KeyEvent e){}
     
    }
    et la classe dessin
    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
     
    package test;
     
    import javax.media.opengl.GL;
     
     
    public class Dessin {
     
    	public Dessin(){}
     
    	float [][]pts = new float[3][2];
     
    	public void update2D(int num, float coordX,float coordY){
    		pts[num][0]=coordX;
    		pts[num][1]=coordY;
    		for(int i =0; i<pts.length;i++)
    			System.out.println(pts[i][0] +","+pts[i][1]);
    	}
    	//Dessiner un triangle
    	public void triangle(GL gl){
    		System.out.println("A");
    		gl.glColor3i(20,190,30);
    		gl.glBegin(GL.GL_TRIANGLES);		// Dessiner un Triangle
    			gl.glVertex3f( 0.0f, 1.0f, 0.0f); // Point du haut
    			gl.glVertex3f(-1.0f,-1.0f, 0.0f); // Point en bas à gauche
    			gl.glVertex3f( 1.0f,-1.0f, 0.0f); // Point en bas à droite
    		gl.glEnd();		    	    	// Le dessin du Triangle est fini
    	}
    }
    merci d'avance de vos reponse

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    En 2D ? Mais tu n'est pas en "2D" la Tu est en perspective.

    Il te faudra déjà passer un mode orthographique a mon avis. GlOrtho()

    Évidement il faudra changer les valeurs de tes vertex aussi.

    Sinon essaye de remplacer dans Dessin le truc de la couleur car ton exemple ne fonctionne que si je mets laversion 3F et non 3I de la methode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glglColor3i(20,190,30);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gl.glColor3f(0.2f, 0.8f, 0.25f);
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [VB.NET] Probleme d'affichage entre ListBox/TextBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/08/2004, 11h02
  2. [VB.NET] Probleme d'affichage de controle
    Par mic56 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/06/2004, 15h03
  3. xml-xsl-fo : probleme d'affichage d'un tableau
    Par clindoeil dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 12/12/2003, 12h46
  4. [langage] Problème d'affichage
    Par marcoss dans le forum Langage
    Réponses: 3
    Dernier message: 29/08/2003, 13h05
  5. IE [Applet] Plug-in problème d'affichage
    Par Tonton Luc dans le forum JBuilder
    Réponses: 4
    Dernier message: 19/06/2003, 08h28

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