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 :

Style de ligne d'un cube


Sujet :

3D Java

  1. #1
    Membre actif Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Points : 200
    Points
    200
    Par défaut Style de ligne d'un cube
    Bonjour je suis un débutant sur la 3D et j'aimerais changer le style et la couleur des lignes de mon cube. jusqu'ici, je n'arrive qu'a dessiner un cube mais sans pouvoir changer la couleur des lignes de mon cube.
    Faire aisément ce qui est difficile aux autres, voilà le talent. Faire ce qui est impossible au talent, voilà le génie.

  2. #2
    Membre actif Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Points : 200
    Points
    200
    Par défaut
    En fait j'essais d'obtenir un truc comme celui qui se trouve à cette adresse:
    Faire aisément ce qui est difficile aux autres, voilà le talent. Faire ce qui est impossible au talent, voilà le génie.

  3. #3
    Membre actif Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Points : 200
    Points
    200
    Par défaut
    Merci. j'ai résolu mon problème.
    Faire aisément ce qui est difficile aux autres, voilà le talent. Faire ce qui est impossible au talent, voilà le génie.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 072
    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 072
    Points : 7 974
    Points
    7 974
    Par défaut
    Fais profiter aux autres de ta solution, non ?
    (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

  5. #5
    Membre actif Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Points : 200
    Points
    200
    Par défaut
    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
    import java.awt.Color;
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.media.j3d.LineStripArray;
    import javax.media.j3d.QuadArray;
    import javax.media.j3d.Shape3D;
    import javax.vecmath.Color3f;
    import javax.vecmath.Point3f;
     
    /**
     * Classe contenant les fonctions permettant de dessiner un cube 3D
     * 
     * @author Guy Alexis TAMBIE
     *
     */
    public class CubeFactory extends Shape3D{
     
    	public CubeFactory(float log, float haut, float larg){
    		int nbFaces = 4; // nombre de lignes (bandes) représentant le nombre de faces
    	    int nbPtsParFaces = 5; // nombre de points par faces
    		// stripVertexCount est construit de façon simplifiée en attribuant le même nombre de points pour chaque ligne
    	    int[] stripVertexCount = new int[nbFaces];
    	    for (int i = 0 ; i < nbFaces ; i++) {
    	        stripVertexCount[i] = nbPtsParFaces;
    	    }
    		Point3f[] points = new Point3f[nbFaces*nbPtsParFaces];
            // Les coordonnees des 16 sommets des 4 faces visibles du cube
    		List<Point3f> points3f = new ArrayList<Point3f>();
            // Face 1
    		points3f.add(new Point3f(-log,  haut,  larg));
    		points3f.add(new Point3f(-log, -haut,  larg));
    		points3f.add(new Point3f( log, -haut,  larg));
    		points3f.add(new Point3f( log,  haut,  larg));
    		points3f.add(new Point3f(-log,  haut,  larg));
     
            // Face 2
    		points3f.add(new Point3f( log,  haut,  larg));
    		points3f.add(new Point3f( log, -haut,  larg));
    		points3f.add(new Point3f( log, -haut, -larg));
    		points3f.add(new Point3f( log,  haut, -larg));
    		points3f.add(new Point3f( log,  haut,  larg));
     
            // Face 3
    		points3f.add(new Point3f( log,  haut, -larg));
    		points3f.add(new Point3f( log, -haut, -larg));
    		points3f.add(new Point3f(-log, -haut, -larg));
    		points3f.add(new Point3f(-log,  haut, -larg));
    		points3f.add(new Point3f( log,  haut, -larg));
     
            // Face 4
    		points3f.add(new Point3f(-log,  haut, -larg));
    		points3f.add(new Point3f(-log, -haut, -larg));
    		points3f.add(new Point3f(-log, -haut,  larg));
    		points3f.add(new Point3f(-log,  haut,  larg));
    		points3f.add(new Point3f(-log,  haut, -larg));
     
    		points3f.toArray(points);
     
          //Construction de l'objet de type linestrip array contenant l'ensemble des points de toutes les lignes
            LineStripArray lineStripArray = new LineStripArray(nbFaces*nbPtsParFaces, LineStripArray.COORDINATES, stripVertexCount);
     
    		// On rentre le tableau des points dans l'objet lineStripArray
    		lineStripArray.setCoordinates(0, points);
     
    		// Mise a jour de la geometrie de l'objet SphereWithLines
    		this.setGeometry(lineStripArray);
    	}
    }
    Merci de me faire un fellback.

    P.S: Tu peux ajouter l'ajouter à une transformGroup et ajouter cube à ce même tranformgroup avant d'ajouter le transformgroup au branchgroup et tu aura un cube avec des lignes bien visibles

    Voici comment je l'utilise:
    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
    private Appearance createAppearance(){
            Appearance appear=new Appearance();
     
            appear.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_WRITE);
            appear.setColoringAttributes(new ColoringAttributes(new Color3f(Color.BLACK), ColoringAttributes.NICEST));
     
            LineAttributes la=new LineAttributes();
     
            // Enable line antialiasing
            la.setLineAntialiasingEnable(true);        
            la.setLineWidth(4);
            la.setLinePattern(LineAttributes.PATTERN_SOLID);
     
            appear.setCapability(Appearance.ALLOW_LINE_ATTRIBUTES_WRITE);
            appear.setLineAttributes(la);
            return appear;
        }
    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
     
    public BranchGroup createScene(){
    objRoot = new BranchGroup();
            objTrans = new TransformGroup();
            objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
            objRoot.addChild(objTrans);
    TransformGroup TG2 = new TransformGroup(trans1);
            TG2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    CubeFactory cube1 = new CubeFactory(0.3f, 0.3f, 0.3f);
     
            cube1.setAppearance(createAppearance());
    // on crée un cube qui herite de cette rotation
            TG2.addChild(new Box(0.3f, 0.3f, 0.3f, appear));
            TG2.addChild(cube1);
    return objRoot;
    }
    Faire aisément ce qui est difficile aux autres, voilà le talent. Faire ce qui est impossible au talent, voilà le génie.

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

Discussions similaires

  1. [Struts-Layout] style collection lignes
    Par lore2002 dans le forum Struts 1
    Réponses: 14
    Dernier message: 26/07/2010, 21h57
  2. alterer le style des lignes de display:table
    Par al3alwa dans le forum Struts 1
    Réponses: 9
    Dernier message: 27/03/2008, 18h44
  3. Pseudo-classes et style en ligne: possible?
    Par BnA dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 02/07/2007, 13h47
  4. [TChart] Style de lignes
    Par bandit boy dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/03/2006, 17h11
  5. Dessiner une ligne dans un cube transparent ?
    Par Muetdhiver dans le forum OpenGL
    Réponses: 4
    Dernier message: 04/05/2004, 12h06

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