begin process at 2010 02 10 02:00:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Java2D et java3D

 > 

ajout d'objet dynamiquement en java3d


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ajout d'objet dynamiquement en java3d

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ée 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 importation de .obj en java3d et animation [ par zetycoon ] Bonjour, je n'ai pas trouver pour le moment de reponse a mes problemes (asser simple normalement).Je debute en java3d et je veux creer une animation.J 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.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales