vinvay
Messages postés36Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention31 janvier 2007
-
13 oct. 2004 à 13:59
cs_olaaa
Messages postés48Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention11 mai 2005
-
20 janv. 2005 à 01:47
Je souhaite faire une surface plane dans l'espace 3D avec Java3D.
Pour cela, j'ai écrit une classe ("MyShape3D") qui contient une fonction grâce à laquelle on peut ajouter des points 3D ("addPoint"). Cette classe possède aussi une méthode ("getShape") qui renvoie un Shape3D fait à partir de tous les points que l'on a inséré avec addPoint.
Je souhaite pouvoir appliquer une couleur ou une texture a cette surface.
Lorsque j'utilise ma classe, je n'obtiens rien sur ma fenêtre graphique. D'où vient le problème ??
Autre question, lorsque j'applique une couleur de fond au canvas3D ("setBackground"), lors de l'ouverture de la fenêtre qui le contient ou de son redimensionnement, cette couleur apparait bien puis le Cannvas3D devient noir. Pourquoi ??
Code de MyShape3D ainsi que de la fenetre qui l'utilise :
private Appearance createAppearance()
{
Appearance a = new Appearance();
Color3f black = new Color3f(0.0f, 0.0f, 0.0f);
Color3f white = new Color3f(1.0f, 1.0f, 1.0f);
cs_olaaa
Messages postés48Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention11 mai 2005 20 janv. 2005 à 01:47
Déja, pour changer le fond d'une scene3D, c pas avec la methode setBackground de Canvas3D (ca ca change juste le fond du canvas3D, pas deta scene, le canvas3D c juste le conteneur de ta scene.)
Pour changer le donc de ta scene, tu doi utiliser la classe Background, et ajouter une foi crée ton background a ton BG principal.
Exemple: (la je met un background a l'aide d'un fichier jpg)
TextureLoader text = new TextureLoader ("espace.JPG", this);
Background fondEtoile = new Background (text.getScaledImage (400, 400));
fondEtoile.setImageScaleMode(Background.SCALE_REPEAT); // Mozaique
fondEtoile.setApplicationBounds (new BoundingSphere(new Point3d(),70));//zone d'influence
tonBranchGroup.addChild(fondEtoile);
Pour changer uniquement la couleur du fond c plus simple encore...