![]() |
||
|
| |||
Traduction par Ap0 du document original sur http://www.java3d.orgCopyright © 2001 Greg Hopkins Positionner les objets
Pour placer vos objets dans la scène, vous démarrez au point (0,0,0) et vous déplacez les objets où vous voulez le long des axes. Le déplacement est appelé une "transformation". Les classes que vous allez utiliser seront donc TransformGroup et Transform3D. Vous ajoutez ensuite ET l’objet créé ET le Transform3D à un TransformGroup avnt d’ajouter le TransformGroup au restde de la scène
Cela peut sembler difficile comme ça, mais les TransformGroup vous permettent de rassembler les objets ensemble et de tous les placer comme s’il ne s’agissait que d’un objet (comme une maison contenant chacun de ses murs et son toit). Par exemple, une table est un groupe d’objets formés de quatre cylindres longs pour les pieds et d’un cube aplati (Box) pour le plateau. En ajoutant chaque partie de la table à un seul TransformGroup, vous pourrez placer toute la table avec une seule translation. La classe Transform3D peut faire bien plus que de spécifier des coordonnées d’un objet. Les fonctions inclusent setScale qui change la taille d’un objet, ainsi que rotX, rotY et rotZ pour effectuer des rotations autour de chaque axe(sens des aiguilles d’une montre, ou sens anti-trigonométrique). L’exemple suivant affiche les différents objets sur chaque axe :This example displays the different objects on each axis. import com.sun.j3d.utils.geometry.*; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; import javax.vecmath.*; public class Position { public Position() { SimpleUniverse universe = new SimpleUniverse(); BranchGroup group = new BranchGroup(); // Axe X recouvert de sphères for (float x = -1.0f; x <= 1.0f; x = x + 0.1f) { Sphere sphere = new Sphere(0.05f); TransformGroup tg = new TransformGroup(); Transform3D transform = new Transform3D(); Vector3f vector = new Vector3f( x, .0f, .0f); transform.setTranslation(vector); tg.setTransform(transform); tg.addChild(sphere); group.addChild(tg); } // Axe Y recouvert de cônes for (float y = -1.0f; y <= 1.0f; y = y + 0.1f) { TransformGroup tg = new TransformGroup(); Transform3D transform = new Transform3D(); Cone cone = new Cone(0.05f, 0.1f); Vector3f vector = new Vector3f(.0f, y, .0f); transform.setTranslation(vector); tg.setTransform(transform); tg.addChild(cone); group.addChild(tg); } // Axe Z recouvet de cylindres for (float z = -1.0f; z <= 1.0f; z = z+ 0.1f) { TransformGroup tg = new TransformGroup(); Transform3D transform = new Transform3D(); Cylinder cylinder = new Cylinder(0.05f, 0.1f); Vector3f vector = new Vector3f(.0f, .0f, z); transform.setTranslation(vector); tg.setTransform(transform); tg.addChild(cylinder); group.addChild(tg); } Color3f light1Color = new Color3f(.1f, 1.4f, .1f); // green light BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f); DirectionalLight light1 = new DirectionalLight(light1Color, light1Direction); light1.setInfluencingBounds(bounds); group.addChild(light1); universe.getViewingPlatform().setNominalViewingTransform(); // Ajouter les groupe d’objets au reste de l’univers universe.addBranchGraph(group); } public static void main(String[] args) { new Position(); } }
|
|
15 internaute(s) sur Web3d-fr
|
Copyright Web3d-fr 2001-2004
|
| Création de mondes VRML/X3D | |
| Autres technos Web3d | |
| Outils et logiciels | |
| 3D multi-utilisateurs | |
| Articles et informations | |
| Ressources gratuites | |
| Autres sites et portails 3D | |
| Trouver un emploi | |
|
| |