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.
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.
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.
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.
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
Merci de me faire un fellback.
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); } }
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager