`

Java3D-HelloWorld画正方体

阅读更多
关键词:Java3d,正方体
在运行程序的时候,请确保你已经安装了Java的3D工具包,否则是无法编译通过的。如果要下载Java3D的api可以点下面的连接:http://www.kutoku.info/images/java/100910/java3d-1_5_1-windows-i586.exe,在Windows下直接安装即可。
官方网站:http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html
程序运行后,展示一个3D的正方体。
下面是运行效果图:


程序如下:
package com.zakisoft.hw;

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;

import javax.media.j3d.Alpha;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.RotationInterpolator;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Point3d;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;

public class HelloUniverse extends Applet {

	private static final long serialVersionUID = 41293118815177506L;
	private SimpleUniverse u = null;

	public BranchGroup createSceneGraph() {
		BranchGroup objRoot = new BranchGroup();

		TransformGroup objTrans = new TransformGroup();
		objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		objRoot.addChild(objTrans);

		// 创建一个3D对象,正方体
		objTrans.addChild(new ColorCube(0.4));

		Transform3D yAxis = new Transform3D();
		Alpha rotationAlpha = new Alpha(-1, 6000);

		RotationInterpolator rotator = new RotationInterpolator(rotationAlpha,
				objTrans, yAxis, 0.0f, (float) Math.PI * 2.0f);
		BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0),
				100.0);
		rotator.setSchedulingBounds(bounds);
		objRoot.addChild(rotator);

		objRoot.compile();

		return objRoot;
	}

	public HelloUniverse() {
	}

	public void init() {
		setLayout(new BorderLayout());
		GraphicsConfiguration config = SimpleUniverse
				.getPreferredConfiguration();

		Canvas3D c = new Canvas3D(config);
		add("Center", c);

		BranchGroup scene = createSceneGraph();
		u = new SimpleUniverse(c);

		u.getViewingPlatform().setNominalViewingTransform();

		u.addBranchGraph(scene);
	}

	public void destroy() {
		u.cleanup();
	}

	public static void main(String[] args) {
		new MainFrame(new HelloUniverse(), 512, 512);

	}
}


文章地址:http://javapub.iteye.com/blog/760437
分享到:
评论
1 楼 kyng 2011-05-16  
怎么一直转 ?? 看不到上下吖。。。 能不能实现鼠标点击就能暂停的???

相关推荐

    SpringMVC ---- HelloWorld ---- 代码

    SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- Hello...

    java郑java01-helloworld.rar

    java郑java01-helloworld.rar

    webgl-3d-helloworld

    "webgl-3d-helloworld"项目是一个基础教程或示例,教你如何使用JavaScript和WebGL创建一个简单的3D“Hello, World!”程序。 在描述中提到的"javascript 实现的 3d helloworld",意味着这个项目将通过JavaScript代码...

    100-ways-to-print-HelloWorld-in-java-master_helloworld_

    这个名为 "100-ways-to-print-HelloWorld-in-java-master_helloworld_" 的项目显然是一个有趣的挑战,旨在探索使用Java语言打印 "Hello, World!" 的一百种不同方法。下面我们将深入探讨这个主题,详细介绍各种可能的...

    18.java-helloworld案例编写.zip

    18.java_helloworld案例编写.zip18.java_helloworld案例编写.zip18.java_helloworld案例编写.zip18.java_helloworld案例编写.zip18.java_helloworld案例编写.zip18.java_helloworld案例编写.zip18.java_helloworld...

    Java开发-HelloWorld程序源码

    只要java程序配置完之后即可运行此源码

    spring-mvc-helloworld

    这个项目 "spring-mvc-helloworld" 是一个基础的 Spring MVC 示例,用于帮助初学者理解其工作原理。 1. **MVC 架构模式**: MVC 是一种设计模式,用于分离应用程序的数据、业务逻辑和用户界面。Model 负责处理数据...

    springboot-helloworld.rar

    《SpringBoot HelloWorld初探》 在当今的Java开发领域,SpringBoot框架因其简化Spring应用的初始搭建以及开发过程而备受青睐。"springboot-helloworld.rar"这个压缩包,显然是一个入门级的示例,旨在帮助开发者快速...

    spring-boot-01-helloworld.zip

    Spring Boot学习笔记-------(二)spring boot入门,配套例子代码,博客地址:https://blog.csdn.net/huaya1127/article/details/104130300

    JNI-HelloWorld

    本示例“JNI-HelloWorld”就是关于如何使用JNI将Java与C语言结合,实现一个简单的“Hello, World!”程序。 首先,我们需要理解JNI的基本概念。JNI定义了一套接口和数据类型,使得Java代码能够声明本地方法(即非...

    spring-rabbitmq-helloworld

    spring和rabbitmq整合的helloworld

    java程序设计-hello world

    java 入门hello world 文件编写,适用于所有初学java初学者

    springmvc-maven-webapp-helloworld 源码

    【标题】"SpringMVC Maven Webapp HelloWorld 源码解析" 在Web开发领域,SpringMVC是一个广泛应用的Java框架,用于构建可扩展且模块化的Web应用程序。它作为Spring框架的一部分,提供了处理HTTP请求、视图渲染以及...

    Java零基础 - HelloWorld程序.md

    ### Java零基础 - HelloWorld程序详解 #### 一、引言 HelloWorld程序是学习任何编程语言时最常见的第一个程序。对于初学者来说,它不仅能够帮助理解编程语言的基本语法,还能激发学习兴趣。本文将详细介绍Java语言...

    100-ways-to-print-HelloWorld-in-java-master.rar

    标题 "100-ways-to-print-HelloWorld-in-java-master.rar" 暗示这是一个关于使用Java编程语言打印“Hello, World!”的项目,其中可能包含了多种不同的实现方法。这个压缩包很可能是一个开源项目,旨在展示Java编程中...

    java学习-java中的helloworld

    java学习-java中的helloworld

    java 微信公众号开发入门1-helloWorld

    java 微信公众号 开发入门1-helloWorld 程序可以跑起来,欢迎大家一起学习研究。 我也是刚刚做出来的 分享出来。,

    人生的第一个程序---Hello World

    每个接触程序的人,必定首先接触到的是这个代码--------Hello world。

    jni-helloWorld

    在"jni-helloWorld"这个项目中,我们看到的是一个JNI的入门示例,主要目的是帮助开发者理解如何使用JNI来调用本地(非Java)代码。 首先,"HelloWorld"是编程中的经典例子,通常用于展示一种新语言或技术的基本用法...

    hibernate-helloworld

    《Hibernate HelloWorld:初识持久化框架的奥秘》 Hibernate,作为Java领域中的一款主流对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的方式来处理数据库,而无需直接编写SQL语句,...

Global site tag (gtag.js) - Google Analytics