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

3D Java Discussion :

[Shape3D] Ecrire un text3D dans un shape3D


Sujet :

3D Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Par défaut [Shape3D] Ecrire un text3D dans un shape3D
    Bonjour à tous,
    je voudrais afficher au bout de mes axes 3D (eux mêmes affichés dans un BrachGroup) les lettres correspondantes (x, y et z). Dans le code source suivant, tout marche sauf l'ajout du texte.

    Code source :
    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
     
    import java.awt.Font;
    import javax.media.j3d.Shape3D;
    import javax.media.j3d.*;
    import javax.vecmath.*;
     
    public class Axes extends Shape3D
    {
     
        public Axes() 
        {   
            LineArray la = new LineArray(6,LineArray.COORDINATES|LineArray.COLOR_3);
            Point3f origin = new Point3f(0.0f,0.0f,0.0f);
            Point3f x = new Point3f(1.0f,0.0f,0.0f);
            Point3f y = new Point3f(0.0f,1.0f,0.0f);
            Point3f z = new Point3f(0.0f,0.0f,1.0f);
            Point3f coords[] = {origin, x, origin, y, origin, z};       
            la.setCoordinates(0,coords);
     
            Color3f red = new Color3f(1.0f, 0.0f, 0.0f);
            Color3f green = new Color3f(0.0f, 1.0f, 0.0f);
            Color3f blue = new Color3f(0.0f, 0.0f, 1.0f);
     
            Color3f [] colors = {red,red, green,green,blue,blue};
            la.setColors(0,colors);
     
            addGeometry(la);
     
            //BUG A PARTIR D'ICI - tout le reste au dessus fonctionne
            //affichage de la lettre "X" au bout de l'axe X
            Font3D font3D = new Font3D(new Font("Dialog", Font.BOLD, 10), new FontExtrusion());
            Text3D text3D = new Text3D(font3D, "X", new Point3f(1.0f, 0.0f, 0.0f));
            addGeometry(text3D);   
            //fin bug :)
    	}
    }
    En effet, lors de la compilation, j'ai une erreur :

    java.lang.IllegalArgumentException: Shape3D: the new geometry component is not of the same equivalence class as the existing geometry components.
    at javax.media.j3d.Shape3DRetained.checkEquivalenceClass(Shape3DRetained.java:2649)
    at javax.media.j3d.Shape3DRetained.addGeometry(Shape3DRetained.java:266)
    at javax.media.j3d.Shape3D.addGeometry(Shape3D.java:396)
    at Axes.<init>(Axes.java:34)
    at RubikCube.createSceneGraph(RubikCube.java:184)
    at RubikCube.<init>(RubikCube.java:137)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at sun.applet.AppletPanel.createApplet(Unknown Source)
    at sun.applet.AppletPanel.runLoader(Unknown Source)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    J'ai beau lire la doc mais cela ne m'explique pas en quoi mon code ne marche pas :/

    Si quelqu'un pouvait m'indiquer une piste... Cela serait sympa
    Merci à tous et bonne journée !

    Tamiii

  2. #2
    Membre éclairé Avatar de puybaret
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 61
    Par défaut
    Si Java 3D t'empêches de mélanger des géométries de différents types, crée à la place une sous-classe de Group avec deux Shape

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/04/2005, 12h27
  2. Réponses: 12
    Dernier message: 04/08/2004, 10h22
  3. Ecrire du texte dans les fenetres filles (MDI)
    Par trilomdor dans le forum MFC
    Réponses: 9
    Dernier message: 23/06/2004, 17h00
  4. [MFC]Ecrire du texte dans un rectangle
    Par zaz16 dans le forum MFC
    Réponses: 8
    Dernier message: 29/07/2003, 10h31
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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