Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : ajout d'objet dynamiquement en java3d [ Archives / Java2D et java3D ] (Draven)

jeudi 4 novembre 2004 à 11:34:31 | ajout d'objet dynamiquement en java3d

Draven

Voilà mon petit soucis. Je voudrais, lors d'un évènement comme le clic de la souris ou une touche pressée, ajouter une sphere à mon univers 3d. Mon problème ne reside pas dans le traitement de l'évènement mais pour ajouter dynamiquement la sphere à mon univers déjà existant.
Quelqu'un aurait-il une solution à me proposer?

Merci

vendredi 5 novembre 2004 à 12:48:50 | Re : ajout d'objet dynamiquement en java3d

JBAware

Salut

peux -tu nous montrer ton code?


JB@WAre

samedi 6 novembre 2004 à 11:57:19 | Re : ajout d'objet dynamiquement en java3d

Draven

Ce n'est pas le projet que je suis en train de faire mais un code que j'utilise pour tester. Inutile d'alourdir la charge avec les autres classes.
Voilà le code ci-dessous va dessiner une sphere tournant indéfiniment. J'ai ajouter un bouton, lors du clic sur ce bouton je voudrais ajouter une autre sphere, ou cube ou n'importe quel autre objet en 3d.

import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.image.TextureLoader;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Appearance;
import javax.media.j3d.ColoringAttributes;
import javax.media.j3d.ImageComponent;
import javax.media.j3d.Texture;
import javax.media.j3d.Texture2D;
import javax.media.j3d.TextureAttributes;
import javax.media.j3d.ImageComponent2D;
import javax.media.j3d.Alpha;
import javax.media.j3d.RotationInterpolator;
import javax.media.j3d.BoundingSphere;

import java.lang.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Terre extends JFrame
{
BranchGroup ObjPrinc;

public Terre()
{
super("Allo Houston...");

// Création des composants
final JButton btnclic = new JButton("Ajouter");
// Bar de menu
JMenuBar menu_bar1 = new JMenuBar();
// Ajouter un bouton sur la bar de menu
menu_bar1.add(btnclic);
// Ajouter la bar du menu à la frame
this.setJMenuBar(menu_bar1);

// clic sur le bouton btnclic
btnclic.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("Ici on ajoute le code pour ajouter a l'univers 3d une sphere ou un cube ou n'importe quoi d'autre ...");
}
});

getContentPane().setLayout(new BorderLayout());
// creation du canvas
Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
getContentPane().add("Center",canvas);
// création de la scène, regroupement des objets
BranchGroup scene = createScene();
scene.compile();

// création de l'univers de la scene 3D
SimpleUniverse univers = new SimpleUniverse(canvas);
// on met le plan de projection en arriere par rapport à l'origine
univers.getViewingPlatform().setNominalViewingTransform();
// on place la scène dans l'univers "univers"
univers.addBranchGraph(scene);

//arret du programme lors du clic sur la croix
setDefaultCloseOperation(EXIT_ON_CLOSE);


}

/* *
* creation d'un groupement d'objet *
* */
private BranchGroup createScene()
{
// creation du BG principal
ObjPrinc = new BranchGroup();
Appearance AppTexture = AjoutTexture("earth.jpg");

// Début de l'animation
TransformGroup TG = new TransformGroup();
//Donner la possibilité a l'objet de bouger
TG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
ObjPrinc.addChild(TG);
// Ajout de la sphere à l'objet charger de l'animation
TG.addChild(new Sphere(0.4f,Sphere.GENERATE_TEXTURE_COORDS,AppTexture));
// Configuration du nombre de tour et la vitesse
// ici tourne indéfiniment (-1) et prend 60 secondes pour faire un tour
Alpha alpha = new Alpha(-1,60000);
RotationInterpolator Rotation = new RotationInterpolator(alpha, TG);
Rotation.setSchedulingBounds(new BoundingSphere());
ObjPrinc.addChild(Rotation);

return ObjPrinc;
}
/*
* Ajout du texture sur la sphere *
* */
private Appearance AjoutTexture(String NomImage)
{
try
{
Appearance Apparence = new Appearance();
// chargement d'une image pour texture
TextureLoader loader = new TextureLoader(NomImage,this);
ImageComponent2D image = loader.getImage();
// instanciation de l'objet texture
Texture2D texture = new Texture2D(Texture.BASE_LEVEL,Texture.RGBA,image.getWidth(),image.getHeight());
texture.setImage(0, image);
// ajout de la texture à l'apparence
Apparence.setTexture(texture);
Apparence.setTextureAttributes(new TextureAttributes());

return Apparence;
}
catch(NullPointerException e1)
{
// Creation d'une texture uni dans le cas ou le fichier image n'exciste pas
Appearance Apparence = new Appearance();
ColoringAttributes bleu = new ColoringAttributes();
bleu.setColor(0.0f,0.0f,0.8f);
Apparence.setColoringAttributes(bleu);
return Apparence;
}
}

public static void main(String[] args)
{
Terre MaTerre = new Terre();
MaTerre.setSize(400,400);
MaTerre.setVisible(true);
}
}

mercredi 1 décembre 2004 à 13:43:59 | Re : ajout d'objet dynamiquement en java3d

dmaillet

tu peux ajouet a un TransformGroup ou a un BranchGroup un autre Branchgroup dynamiquement, si celui auquel tu ajoutes a la capacite:
bg.setCapability(Node.ALLOW_CHILDREN_EXTENDS);
et ensuite dynamiquement
bg.addChild(bgSphere);
-------------------
dams
-------------------



Cette discussion est classé dans : objet, ajout, dynamiquement, évènement, java3d


Répondre à ce message

Sujets en rapport avec ce message

[debutante][java3d] un objet dans un objet [ par ametisse ] Salut, je suis débutante en java3d et j'aurais besoin de savoir comment on fait pour mettre des objets dans d'autres objets.En fait, je souhaite creer collision des Objets en java3D [ par a_farsi ] Bonjourj'ai essayer un progrmme de collision des objets en java3D (exemple appelé TickTockCOllision donné avec les exemples de bases lors de l'instala Applet + Java3D [ par chabfive ] Salut,J'ai réalisé une Applet qui charge un objet 3D VRML et qui permet de le visualiser. Cette Applet fonctionne très bien lorsque je l'exécute sous java3D + Applet [ par chabfive ] Salut, J'ai réalisé une Applet qui charge un objet 3D VRML et qui permet de le visualiser. Cette Applet fonctionne très bien lorsque je l'exécute sou [java3d] recuperer les coordonnees d'un objet de la scene? [ par palmeras ] Bonjour, j'aimerais savoir s'il etait possible de recuperer la position d'un objet dans la scene. Ma scene comporte un disque mo Caster dynamiquement un objet [ par TomC ] Bonjour à tous.Je cherche la manière de caster dynamiquement un objet.Je sais récuperer la classe de l'objet à l'aide du package java.lang.reflect :Cl Comment créer un nom d'instance dynamiquement [ par boubadeuns ] Bonjour a tous,Mon pb du jour.J'aimerais instancier ds une méthode un objet dont le nom est fonction d'un autre paramètre.Par exemple créer un objet [Java3D] Appliquer un shader à un objet [ par The_Moye ] Bonjour la populace!Une petite question concernant l'utilisation de shaders sous Java3D.En effet les tutos traitant des shaders en Java3D ne courent p Compilation apres ajout de librairies externes [ par bibijosh ] Bonjour,J'ai développée une appli en java web start qui contient une représentation 3D faite avec java3D. Jusque là tout va bien, ca s'execute nickel. Obtenir la liste de valeur d'ArrayList dans une hashmap [ par Jonathan_Harvey ] Bonjour , J'ai cherché à savoir si il existe une question identique dans le forum mais je n'ai rien trouvéVoici donc mon problème :J'ai crée une hashm


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.