Accueil > > > TEXTE ROTATIF JAVA 3D
TEXTE ROTATIF JAVA 3D
Information sur la source
Description
Simplement un texte en 3d qui tourne sur lui meme ... a la façon de l'écran de veille Windows (oO). Je débute en J3D , alors je me suis inspiré ( et plus encor ) du toturial présent sur http://rvirtual.free.fr/programmation/java3d/int ro.html clair et simple .
Source
- import com.sun.j3d.utils.universe.SimpleUniverse;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Font;
- import javax.media.j3d.Alpha;
- import javax.media.j3d.Appearance;
- import javax.media.j3d.BoundingSphere;
- import javax.media.j3d.BranchGroup;
- import javax.media.j3d.Canvas3D;
- import javax.media.j3d.ColoringAttributes;
- import javax.media.j3d.Font3D;
- import javax.media.j3d.FontExtrusion;
- import javax.media.j3d.Material;
- import javax.media.j3d.PointLight;
- import javax.media.j3d.RotationInterpolator;
- import javax.media.j3d.Shape3D;
- import javax.media.j3d.Text3D;
- import javax.media.j3d.Transform3D;
- import javax.media.j3d.TransformGroup;
- import javax.swing.JFrame;
- import javax.vecmath.Color3f;
- import javax.vecmath.Point3d;
- import javax.vecmath.Point3f;
- import javax.vecmath.Vector3f;
-
- /**
- *
- * @author Tlaloc
- */
- public class tlaloctzin extends JFrame {
-
-
- public tlaloctzin() {
- //création de la fenetre , rien d'exeptionel
- super();
- setSize(500,300);
- setTitle("Tlaloctzin en 3D");
- setLayout(new BorderLayout());
-
- //on crée le canvas3D qui va contenir la scene
- Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
- add("Center",canvas);
-
-
- SimpleUniverse universe = new SimpleUniverse(canvas);
- universe.getViewingPlatform().setNominalViewingTransform();
- universe.addBranchGraph(createScene());
-
- }
-
- public BranchGroup createScene(){
- //on commence par créer l'apparence
- Appearance apparence = new Appearance();
- //on cree les attributs de couler que l'on va appliquer a l'apparence
- ColoringAttributes couleur = new ColoringAttributes();
- couleur.setColor(new Color3f(Color.GRAY));
- couleur.setShadeModel(ColoringAttributes.NICEST);
- apparence.setColoringAttributes(couleur);
- //on configure
- Material mat=new Material(new Color3f(1f,1f,0f),new Color3f(0f,0f,0f),new Color3f(1f,1f,0f),new Color3f(1f,1f,1f),64);
- apparence.setMaterial(mat);
- //on cré le branchgroupe que l on attribueras au canvas3D
- BranchGroup branch = new BranchGroup();
- //création de la font et de l 'apparence de l'objet 3D
- Font3D font =new Font3D(new Font("Helvetica",Font.PLAIN,1),new FontExtrusion());
- Text3D texte = new Text3D(font , "Tlaloctzin",new Point3f(0.0f,-0.25f,0.0f));
- texte.setAlignment(Text3D.ALIGN_CENTER);
- //il faut transhpormer le texte3D en shape pour pouvoir l'integrer a la scene
- Shape3D text=new Shape3D();
- text.setGeometry(texte);
- //on atribue l'apparence
- text.setAppearance(apparence);
- //on retaille l'objet 3D ( la taille des polices est exagérée)
- Transform3D scale3D = new Transform3D();
- scale3D.setScale(0.2f);//soit 20 % de la taille normale
- TransformGroup scale = new TransformGroup(scale3D);
- //on autorise la modification durant l'execution'
- scale.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
- //ici on applique la modification de taille
- scale.addChild(text);
- //creation de la rotation dans le temps -1 pr durée a l'infinie , 4000 pour la vitesse de rotation plus grand , plus lent !
- Alpha alpha = new Alpha(-1,4000);
- //application de l'alpha ci dessus a l'objet'
- RotationInterpolator rotator=new RotationInterpolator(alpha,scale);
- //zone de rotation
- BoundingSphere bounds=new BoundingSphere();
- rotator.setSchedulingBounds(bounds);
- //on applique
- scale.addChild(rotator);
- //on rajoute l'objet3D a la scene
- branch.addChild(scale);
- //on ajoute la lumiere
- PointLight light=new PointLight(new Color3f(Color.GRAY),new Point3f(2f,2f,2f),new Point3f(1f,0f,0f));
- light.setInfluencingBounds(new BoundingSphere(new Point3d(),150d));
- branch.addChild(light);
-
-
- branch.compile();
- return branch ;
- }
-
- public static void main ( String [] args ){
- tlaloctzin tla = new tlaloctzin();
- tla.setVisible(true);
- }
-
-
- }
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.media.j3d.Alpha;
import javax.media.j3d.Appearance;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.ColoringAttributes;
import javax.media.j3d.Font3D;
import javax.media.j3d.FontExtrusion;
import javax.media.j3d.Material;
import javax.media.j3d.PointLight;
import javax.media.j3d.RotationInterpolator;
import javax.media.j3d.Shape3D;
import javax.media.j3d.Text3D;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.swing.JFrame;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Point3f;
import javax.vecmath.Vector3f;
/**
*
* @author Tlaloc
*/
public class tlaloctzin extends JFrame {
public tlaloctzin() {
//création de la fenetre , rien d'exeptionel
super();
setSize(500,300);
setTitle("Tlaloctzin en 3D");
setLayout(new BorderLayout());
//on crée le canvas3D qui va contenir la scene
Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
add("Center",canvas);
SimpleUniverse universe = new SimpleUniverse(canvas);
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(createScene());
}
public BranchGroup createScene(){
//on commence par créer l'apparence
Appearance apparence = new Appearance();
//on cree les attributs de couler que l'on va appliquer a l'apparence
ColoringAttributes couleur = new ColoringAttributes();
couleur.setColor(new Color3f(Color.GRAY));
couleur.setShadeModel(ColoringAttributes.NICEST);
apparence.setColoringAttributes(couleur);
//on configure
Material mat=new Material(new Color3f(1f,1f,0f),new Color3f(0f,0f,0f),new Color3f(1f,1f,0f),new Color3f(1f,1f,1f),64);
apparence.setMaterial(mat);
//on cré le branchgroupe que l on attribueras au canvas3D
BranchGroup branch = new BranchGroup();
//création de la font et de l 'apparence de l'objet 3D
Font3D font =new Font3D(new Font("Helvetica",Font.PLAIN,1),new FontExtrusion());
Text3D texte = new Text3D(font , "Tlaloctzin",new Point3f(0.0f,-0.25f,0.0f));
texte.setAlignment(Text3D.ALIGN_CENTER);
//il faut transhpormer le texte3D en shape pour pouvoir l'integrer a la scene
Shape3D text=new Shape3D();
text.setGeometry(texte);
//on atribue l'apparence
text.setAppearance(apparence);
//on retaille l'objet 3D ( la taille des polices est exagérée)
Transform3D scale3D = new Transform3D();
scale3D.setScale(0.2f);//soit 20 % de la taille normale
TransformGroup scale = new TransformGroup(scale3D);
//on autorise la modification durant l'execution'
scale.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
//ici on applique la modification de taille
scale.addChild(text);
//creation de la rotation dans le temps -1 pr durée a l'infinie , 4000 pour la vitesse de rotation plus grand , plus lent !
Alpha alpha = new Alpha(-1,4000);
//application de l'alpha ci dessus a l'objet'
RotationInterpolator rotator=new RotationInterpolator(alpha,scale);
//zone de rotation
BoundingSphere bounds=new BoundingSphere();
rotator.setSchedulingBounds(bounds);
//on applique
scale.addChild(rotator);
//on rajoute l'objet3D a la scene
branch.addChild(scale);
//on ajoute la lumiere
PointLight light=new PointLight(new Color3f(Color.GRAY),new Point3f(2f,2f,2f),new Point3f(1f,0f,0f));
light.setInfluencingBounds(new BoundingSphere(new Point3d(),150d));
branch.addChild(light);
branch.compile();
return branch ;
}
public static void main ( String [] args ){
tlaloctzin tla = new tlaloctzin();
tla.setVisible(true);
}
}
Historique
- 30 novembre 2007 13:11:14 :
- .
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Popups pour objets 3D et canvas3D [ par sofien007 ]
salut pour tout le monde, y'a t'il quelqu'un qui connait comment affecter des popups pour des objets 3d en java3D. Je voudrais les utilises comme su
Canvas3D JPanel et Behavior [ par Logod ]
<link rel="Fi
Pb avec Java 3D [ par vincem35 ]
Vincebonjour,je sais faire tourner un cube avec Java 3d ça c'est simple.mais pour que le cube tourne sur lui même, il faut que le cube soit en positio
java 3D et collision [ par notyetadj ]
salut je suis sur un projet de visite virtuelle d'un centre commercial et j'ai rencontré un problème majeur: en effet quand je me balade dans le cent
java 3d [ par amanatarra7man ]
bonjour j'ai un probeme avec java 3d, j'ai telecherger qlqs exemples du net pour s'en trainer, en executant qlqs erreur comme : " cannot access com.s
java 3d [ par amanatarra7man ]
bonjour s'il vous plait aidez moi a savoir si la modelisation de pied humain avec java 3d est posible ayant com entrées : les longueurs caractéristiqu
java 3d [ par amanatarra7man ]
Svp ce code affiche 2 cylindre de grandeurs differents je ve afficher l'un sous l'autre mais je pe pas svp aidez moivoila le code:/ Etape 1 :// Impor
pied humain [ par amanatarra7man ]
je vous demande une question a propos java 3D je dois moeliser le pied humain avec java 3D j'ai penser a le moeliser avec les classes predefinis
pied humain 3d [ par amanatarra7man ]
svp je suis nouvelle dans le monde 3d je vais demander si java 3d est la meilleur solution pour developper uine application permettant de modeliser le
la borne de cramer-rao en modelisation 3D [ par nonosat ]
salut, aide moi svp pour mon sujet
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
Comparez les prix

HTC Magic
Entre 429€ et 429€
|