begin process at 2010 02 09 21:11:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Java3D

 > LA TERRE (JAVA3D)

LA TERRE (JAVA3D)


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Java3D Niveau :Débutant Date de création :13/02/2004 Date de mise à jour :13/02/2004 22:02:04 Vu / téléchargé :13 186 / 1 331

Auteur : Draven

Ecrire un message privé
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Petite application d'une difficulté moyenne quand on a jamais fait de 3D comme moi. Une fois qu'on a compris le principe après codage se simplifie.

Source

  • /*****************************************************
  • * Auteur : Draven *
  • * Fichier : Terre.java *
  • * Fonction: Animation de la terre *
  • *****************************************************/
  • 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 javax.swing.JFrame;
  • import java.awt.BorderLayout;
  • public class Terre extends JFrame
  • {
  • public Terre()
  • {
  • super("Allo Houston...");
  • 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 *
  • * */
  • public BranchGroup createScene()
  • {
  • // creation du BG principal
  • BranchGroup 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 *
  • * */
  • public 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);
  • }
  • }
/*****************************************************
*	Auteur  : Draven		       	            *
*	Fichier : Terre.java			            *
*	Fonction: Animation de la terre	 	            *
*****************************************************/

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 javax.swing.JFrame;
import java.awt.BorderLayout;

public class Terre extends JFrame
{
	public Terre()
	{
		super("Allo Houston...");

		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  *
	 *									  */
	public BranchGroup createScene()
	{
		// creation du BG principal
		BranchGroup 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	*
	 *									*/
	public 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);
	}
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture LA LUNE TOURNE AUTOUR DE LA TERRE
AJOUTER UNE BARRE DE MENU À VOTRE APPLICATION JMENUBAR
ARBORESCENCE DU DISQUE DUR AVEC JTREE
PETIT CHRONOMETRE

 Sources de la même categorie

SIMPLE CUBE COLORÉ POUR J2ME [JSR184] AVEC UNE DEMO SIMPLE par loloof64
Source avec Zip JEU INTÉGRAL EN JAVA 3D par surfeurman5
Source avec une capture TEXTE ROTATIF JAVA 3D par tlaloctzin
Source avec Zip [JAVA3D] PARSEUR DE FICHIER WAVEFRONT par bebe47
Source avec Zip UNIVERS SIMPLE (LUNE,TERRE,SOLEIL) AVEC JAVA3D par bad_smi

Commentaires et avis

Commentaire de kha le 14/02/2004 19:41:08

Super :)

Précise qu'on a besoin de l API java3d (ce serqit mieux d inclure le jar dans ton zip si possible...)

;)

https://jsecom15b.sun.com/ECom/EComActionServlet/LegalPage:~:com.sun.sunit.sdlc.content.LegalWebPageInfo;jsessionid=jsecom15b.sun.com-34f7d%3A402e68a1%3A89b9c3db5d282

Commentaire de artichaud le 18/02/2004 19:58:51

en effet l'execution du programme génère plein de bugs. Je n'ai apparament pas les bonnes librairies.
Kant j'utilise l'adresse https://jsecom15b.sun.com/ECom/EComActionServlet/LegalPage:~:com.sun.sunit.sdlc.content.LegalWebPageInfo;jsessionid=jsecom15b.sun.com-34f7d%3A402e68a1%3A89b9c3db5d282
donnée dans le pécédent commentaire, même en me logant sous mon nick, je tombe sur une page ki ne me dit rien du tout sur l' "api java3d". Pourrais-tu joindre cet API? Et signaler comment l'installer stp!

Commentaire de kha le 18/02/2004 21:26:05

scuse le voila :
http://java.sun.com/products/java-media/3D/download.html
il suffit de mettre les .jar (lis le readme) dans le dossier ext ds la machine virtuelle

Commentaire de artichaud le 18/02/2004 21:48:27

nickel
en fait j'étais en train de chercher... je pose des kestions avant d'essayer d'y répondre...

Commentaire de Draven le 22/02/2004 13:50:55

C vrai que j'aurai du preciser qu'on avait besoin de l'API java3d mais pour moi c etait implicite dans cette rubrique. Je pense qu'il est inutile de mettre le jar dans le zip l'api SDK ne fait que 6Mo et le JRE 4.


Merci à toi, Kha, d'avoir repondu pendant que j etais pas la.

a+

Commentaire de tds le 15/03/2004 12:55:12

Mmmmh, déjà vu cela quelque part . . . ;)
B@ron.

Commentaire de tds le 18/03/2004 14:30:40

Dis Draven, NEODANTE ou GODCONAN pourriez-vous m'aider?
J'ai fini l'environnement de jeu genre Heagemonia en java3D: déplacements, . . . . Cependant, je voudrais introduire des tests de collision. Pour cela, je dois créer mon propre univers (je pense) car les ViewPlatform (je crois) est déjà isLive dans SimpleUniverse... Cependant, je ne parviens pas à faire tourner mon keyboardBehaviour avec mon univers :'( (alors qu'il fonctionne avec SimpleUniverse)
Si vous voulez m'aider, je mettrai mon code ici.
Merci
B@ron [:)]

Commentaire de Draven le 22/03/2004 19:46:45

Salut tds
Je veux bien t'aider si tu as tjs besoin. Je ne suis pas encore un expert en java3d mais si je peux t aider ça sera avec plaisir. Je te contacte en mp pour plus de détails.
A+

Commentaire de tds le 23/03/2004 07:33:29

OK, bien c'est assez simple.
1) Le virtualUniverse est fini: je le mettrai très bientôt sur le site.
2) Le contenu: Environnement spacial avec système solaire et rotationS.
3) Je voudrai lorsque je navigue dans cette univers éviter de passer à travers une planète.
IDEE: Mettre une sphère transparente autour de la vue qui elle détecte les collisions.

EN EFFET: Les collisions ne posent pas problème avec d'autres cubes ou autres car ce sont dfse objets. Ici, je veut que la caméra se comporte comme un cube d'ou l'idée de mettre un composant sphère transparente autour de la caméra (View) pour qu'elle détecte les collisions avant que cela ne soit trop tard...

MAIS y a-t-il d'autres solutions...

B@ron {EU.BELGIUM}

Commentaire de Uims le 11/08/2004 16:22:08

Euhhh pour le prog (dsl de m'incruster) il me mettent apres avoir compiler "error loading image earth.jpg"
Est-ce moi ou le prog qui dec?

Commentaire de tds le 12/08/2004 07:41:52

Je n'ai pas testé à fond ce programme mais je pense que tu devrais envoyer ta pile d'erreurs à Draven.
C'est bizarre comme message d'erreur car on dirait qu'il trouve l'image mais qu'il ne parvient pas à la télécharger...

Bon courage. Si cela ne va pas mieux, poste et on regardera ensemble...

B@ron {EU.BELGIUM}

Commentaire de amadnane2000 le 08/05/2005 23:24:23

Bonjour,
trés bien mais,je veux plus de détailles s'il vous plait .si possible bien sur.
et merci .

Commentaire de nightlord666 le 07/08/2005 19:31:23

Quand le compilateur met cette erreur, je pense que c'est parce qu'il ne trouve pas l'image au chemin spécifié(j'ai recopié le code sans télécharger l'image et ça me met pareil).

Commentaire de nightlord666 le 07/08/2005 19:48:24

Ah je viens de me rendre compte : le compilateur cherche par defaut dans le repertoire contenant les dossiers "src", "build", "test" et "nbproject". Il faut mettre la texture dans ce répertoire.

 Ajouter un commentaire




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,312 sec (4)

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