定位对象 : 三维基础 « 三维图形动画 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 三维图形动画 » 三维基础屏幕截图 
定位对象
定位对象

/*
The Joy of Java 3D

by Greg Hopkins

Copyright Copyright 2001


*/

/*
Positioning the Objects

In Java 3D, locations are described by using x, y, z coordinates. Increasing coordinates 
go along the x-axis to the right, along the y-axis  upwards, and along the z-axis out of 
the screen. This is called a "right-handed" coordinate system because the thumb and first
two fingers of your right hand can be used to represent the three directions. All the 
distances are measured in meters.


To place your objects in the scene, you start at point (0,0,0), and then move the objects 
wherever you want. Moving the objects is called a "transformation", so the classes you 
use are: TransformGroup and Transform3D.  You add both the object and the Transform3D to 
a TransformGroup  before adding the TransformGroup to the rest of your scend



Step                                                             Example
1.  Create a transform, a transform                         Transform = new Transform3D();
group and an object                                          transformGroup tg  = new TransformGroup();
                                                 
                                                            Cone cone = new Cone(0.5f, 0.5f);
--------------------------------------------------------------------------------------------
2.  Specify a location for the object                        Vector3f vector = new Vector3f(-.2f,.1f , -.4f);
--------------------------------------------------------------------------------------------
3.  Set the transform to move (translate)                   Transform.setTranslation(vector); 
the object to that location  
--------------------------------------------------------------------------------------------
4.  Add the transform to the transform group                tg.setTransform(transform);
--------------------------------------------------------------------------------------------
5.  Add the object to the transform group                    tg.addChild(cone);


This example displays the different objects on each axis.
*/

import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.geometry.Cone;
import com.sun.j3d.utils.geometry.Cylinder;
import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.universe.SimpleUniverse;

public class Position {

  public Position() {
    SimpleUniverse universe = new SimpleUniverse();
    BranchGroup group = new BranchGroup();
    // X axis made of spheres
    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);
    }
    // Y axis made of cones
    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.05f0.1f);
      Vector3f vector = new Vector3f(.0f, y, .0f);
      transform.setTranslation(vector);
      tg.setTransform(transform);
      tg.addChild(cone);
      group.addChild(tg);
    }
    // Z axis made of cylinders
    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.05f0.1f);
      Vector3f vector = new Vector3f(.0f.0f, z);
      transform.setTranslation(vector);
      tg.setTransform(transform);
      tg.addChild(cylinder);
      group.addChild(tg);
    }

    Color3f light1Color = new Color3f(.1f1.4f.1f)// green light
    BoundingSphere bounds = new BoundingSphere(new Point3d(0.00.00.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();

    // add the group of objects to the Universe
    universe.addBranchGraph(group);
  }

  public static void main(String[] args) {
    new Position();
  }
}

           
       
Related examples in the same category
1. 简单的3D演示简单的3D演示
2. 必要步骤来显示三维物体必要步骤来显示三维物体
3. 基本构建基本构建
4. 外观范围
5. 外观外观
6. 外观混合
7. 入门Java3D API入门Java3D API
8. 简单的旋转简单的旋转
9. HelloJava3Db单一的,旋转立方体HelloJava3Db单一的,旋转立方体
10. 用户界面与Java
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.