Bonjour,
salut tout le monde ..svp j 'ai besoin d'aide urgente
j'ai copié ce code que j'ai trouvé sur un tutoriel dans eclipse :
// Etape 1 :
// Importation des packages Java 2
import java.applet.Applet;
import java.awt.*;
// Etape 2 :
// Importation des packages Java 3D
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import javax.media.j3d.CapabilityNotSetException ;
public class ColorInterpolatorTest extends Applet {
public ColorInterpolatorTest() {
this.setLayout(new BorderLayout());
// Etape 3 :
// Creation du Canvas 3D
Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
this.add(canvas3D, BorderLayout.CENTER);
// Etape 4 :
// Creation d'un objet SimpleUniverse
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
// Etape 5 :
// Positionnement du point d'observation pour avoir une vue correcte de la
// scene 3D
simpleU.getViewingPlatform().setNominalViewingTransform();
// Etape 6 :
// Creation de la scene 3D qui contient tous les objets 3D que l'on veut visualiser
BranchGroup scene = createSceneGraph();
// Etape 7 :
// Compilation de la scene 3D
scene.compile();
// Etape 8:
// Attachement de la scene 3D a l'objet SimpleUniverse
simpleU.addBranchGraph(scene);
}
/**
* Creation de la scene 3D qui contient tous les objets 3D
* @return scene 3D
*/
public BranchGroup createSceneGraph() {
// Creation de l'objet parent qui contiendra tous les autres objets 3D
BranchGroup parent = new BranchGroup();
// Creation du materiau pour la couleur de la sphere
// Par defaut c'est la couleur diffuse du materiau qui est modifiee
// Bug Java 3D : la couleur emissive ne change pas avec Java 3D OpenGL
Material material = new Material();
//material.setColorTarget(Material.EMISSIVE);
Appearance appearance = new Appearance();
appearance.setMaterial(material);
// Creation de lumieres directionnelle et ambiante
DirectionalLight dirlight =
new DirectionalLight( new Color3f(1.0f, 1.0f, 1.0f),
new Vector3f(1.0f, -1.0f, -1.0f) );
dirlight.setInfluencingBounds(new BoundingSphere());
parent.addChild(dirlight);
AmbientLight ambLight = new AmbientLight(new Color3f(1.0f, 1.0f, 1.0f));
ambLight.setInfluencingBounds(new BoundingSphere());
parent.addChild(ambLight);
// Creation de l'animation temporelle
Alpha alpha = new Alpha(-1, 4000);
alpha.setMode(Alpha.INCREASING_ENABLE | Alpha.DECREASING_ENABLE);
alpha.setDecreasingAlphaDuration(2000);
alpha.setStartTime(System.currentTimeMillis());
// Creation de l'animation de la couleur que l'on ajoute a la racine
// de l'arbre de la scene
ColorInterpolator colorInt =
new ColorInterpolator(alpha,
material,
new Color3f(0f, 0f, 1f), // bleu
new Color3f(1f, 1f, 0f)); // jaune
colorInt.setSchedulingBounds(new BoundingSphere());
parent.addChild(colorInt);
// Construction et ajout de la sphere dans le graphe de la scene
Sphere sphere = new Sphere(0.4f, Sphere.GENERATE_NORMALS, 64);
sphere.setAppearance(appearance);
parent.addChild(sphere);
return parent;
}
/**
* Etape 9 :
* Methode main() nous permettant d'utiliser cette classe comme une applet
* ou une application.
* @param args arguments de la ligne de commande
*/
public static void main(String[] args) {
Frame frame = new MainFrame(new ColorInterpolatorTest(), 256, 256);
}
}
et je n'ai pas eu le meme resultat que dans la demonstration html que proposait le tutoriel et j'ai eu ce message d'erreur
Exception occurred during Behavior execution:
javax.media.j3d.CapabilityNotSetException: Material: no capability to set component
at javax.media.j3d.Material.setDiffuseColor(Material.java:356)
at javax.media.j3d.ColorInterpolator.processStimulus(ColorInterpolator.java:204)
at javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:192)
at javax.media.j3d.J3dThread.run(J3dThread.java:275)
je suis une debutante et je n'ai pas compris ou se trouve le probleme..svp aidez moi..j'en ai vrément besoin aujourd'hui
Configuration: Windows XP
Firefox 3.0.1