`

Java3D 正方体

阅读更多
一个最简单的Java3D的例子。
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);
	}
}

分享到:
评论
2 楼 niwowl 2013-09-30  
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-client-419417.html#java3d-1.5.1-oth-JPR
1 楼 niwowl 2013-09-30  
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-142216.html

相关推荐

    这个是3D正方体

    3D正方体

    Gr3d1m.rar_Gr3d_java体_java正方体

    在Java编程语言中,"Gr3d1m.rar_Gr3d_java体_java正方体"这个主题主要涉及的是使用Java的图形库来创建和操纵3D正方体。在这个项目中,开发者通过编程实现了一个可以显示边框,并且能够根据鼠标事件动态旋转的3D...

    Gr3d1m.rar_java体_java正方体

    在Java编程语言中,"Gr3d1m.rar_java体_java正方体"这个主题主要涉及到3D图形绘制和交互式应用开发。我们将探讨如何在Java中使用基本的图形库来实现一个带有边框的正方体,并通过监听鼠标事件来实现正方体的动态旋转...

    openGL-S 3D 正方体,触摸旋转,照片贴图,ANDROID的源代码

    Java开发 openGL-es 3D 正方体,触摸旋转,照片贴图,ANDROID的源代码-openGL-es 3D cube, touch rotation, photo mapping, ANDROID source code

    java3d 入门学习的好代码例子

    ColouredTile.java 是一个派生自 Shape3D 类的 Tile 对象,负责实现一个正方体平面,用来为 CheckerFloor 类实现棋盘格。在这个文件中,我们可以看到 ColouredTile 对象的创建和初始化过程,包括 Tile 对象的设置和...

    sf_java3d_articlelbl_

    在这个“sf_java3d_articlelbl_”的压缩包中,我们有三个程序,它们分别展示了Java3D的一些基本功能,包括图形的放大缩小和正方体的鼠标控制旋转。 首先,让我们详细了解Java3D的基础知识。Java3D通过使用向量和...

    java3D超立体感光线

    文字按指定路运动,welcome文字感强,动感足,正方体可以贴个性化图片。

    (java小程序)能旋转的立方体

    在本项目中,我们探讨的是一个基于Java编程的有趣小程序,标题为“能旋转的立方体”。这个小程序展示了如何在2D平面上通过图形...通过实践,你可以掌握如何在Java中创建动态的3D图形,并理解背后的数学原理和编程概念。

    HTML+CSS实现快速3D效果,六个案例源码分享 3D球体、正方体+鼠标渐入渐出效果、贴图正方体、球体相册、行星环绕相册

    3D球体、正方体+鼠标渐入渐出效果、贴图正方体、球体相册、行星环绕相册。使用于刚开始学习前端的人群,在不使用js的前提下就实现3D效果。代码简洁易懂,初级开发者利器。源码是开源的,任何人都可以借鉴。

    javascript实现的三维正方体(兼容ie7,ff)

    利用矩阵计算出转动后的正方体顶点坐标, 把各个顶点的空间坐标按”近大远小”转换成平面坐标(函数p2d()), 用正方体各个面的法向量的z坐标判断该面是否可见, 用高为1px的div层模拟画出四边形(函数gra2htm())....

    计算机图形学实验实现正方体分形

    为了编程实现,我们需要熟悉一种编程语言,如C++、Python或Java,并了解相应的图形库,如OpenGL、DirectX或现代Web的WebGL。这些库提供了绘制3D图形和处理图形变换的函数,帮助我们实现分形的渲染。例如,OpenGL提供...

    android ndk调用opengl es实现旋转正方体

    在Android中,你可以通过JNI接口调用Java层的`EGLContext`和`EGLDisplay`对象。 为了绘制正方体,你需要创建一个顶点数组,表示立方体的各个顶点。这通常包括6个面,每个面由4个顶点组成。然后,创建一个索引数组,...

    tesseract-java:http

    使用 Java OpenGL 对称为 tesseract 的 4D 对象进行 3D 渲染。 导航 | | | | | [JAR 和 Natives 配置](#JAR 和 Natives 配置) | [文件夹结构](#文件夹结构) | [运行程序](#运行程序) | | 目的 该项目旨在创建一个 4D...

    【OpenGL ES】绘制正方形

    OpenGL ES 是一种基于 OpenGL 的图形库,专为嵌入式设备如智能手机、平板电脑和游戏机设计,用于渲染2D和3D图形。在Android平台上,OpenGL ES 是开发者常用的技术来实现高性能的图形处理。本篇文章将深入探讨如何...

    一些off格式的网格数据文件

    要在程序中处理这些文件,你可以使用各种编程语言的库,比如Python的`trimesh`或`numpy`,C++的`Assimp`库,或者Java的`JOML`等。它们提供了读取和操作3D网格数据的功能。 通过这些OFF文件,我们可以深入了解不同...

Global site tag (gtag.js) - Google Analytics