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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|