保存文件,命名为UglyCube.java

这是个彩色六面体,可以用鼠标左键旋转,右键拖动,摁下滚轮前后移动缩放。

直接在命令行下转到文件目录,像普通java程序那样编译解释执行。用以测试Java3D开发运行环境是否配置正确。相关程序如下:

一些其他的Java3D资源资料可以在下面的文章中找到。

import java.applet.Applet;

import java.awt.BorderLayout;

import com.sun.j3d.utils.applet.MainFrame;

import com.sun.j3d.utils.geometry.*;

import com.sun.j3d.utils.universe.*;

import javax.media.j3d.*;

import javax.vecmath.*;

import com.sun.j3d.utils.behaviors.mouse.MouseRotate;

import com.sun.j3d.utils.behaviors.mouse.MouseZoom;

import com.sun.j3d.utils.behaviors.mouse.MouseTranslate;

public class UglyCube extends Applet

{

private SimpleUniverse universe ;

public UglyCube()

{}

public void init()

{

//canvas to draw on, ask SimpleUniverse what config to use

Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());

setLayout(new BorderLayout());

add("Center", canvas);

//create top of our scene graph

BranchGroup scene = new BranchGroup();

//create universe, and attach our geometry to it.

SimpleUniverse u = new SimpleUniverse(canvas);

u.getViewingPlatform().setNominalViewingTransform();

// Create the bounding leaf node

BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);

// Create the transform node

TransformGroup transformGroup = new TransformGroup();

transformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);

transformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

// Create the drag behavior node

MouseRotate behavior = new MouseRotate();

behavior.setTransformGroup(transformGroup);

transformGroup.addChild(behavior);

behavior.setSchedulingBounds(bounds);

// Create the zoom behavior node

MouseZoom behavior2 = new MouseZoom();

behavior2.setTransformGroup(transformGroup);

transformGroup.addChild(behavior2);

behavior2.setSchedulingBounds(bounds);

// Create the zoom behavior node

MouseTranslate behavior3 = new MouseTranslate();

behavior3.setTransformGroup(transformGroup);

transformGroup.addChild(behavior3);

behavior3.setSchedulingBounds(bounds);

transformGroup.addChild(new ColorCube(0.4));

scene.addChild(transformGroup);

u.addBranchGraph(scene);

}

// The following allows UglyCube to be run as an application

// as well as an applet

public static void main(String[] args)

{

new MainFrame(new UglyCube(), 256, 256);

java 三维场景图_一个Java3D简单三维场景图,测试你的Java3D开发运行环境。相关推荐

  1. web自动化如何在不同浏览器运行_如何给树莓派搭建WEB开发运行环境之JAVA篇

    在上一篇,我们已经脱掉了她华丽的外衣,你不用再添加任何华而不实的装饰,一切都交给CLI来搞定.树莓派WEB开发运行环境之JAVA篇,只需5个步骤: 安装JAVA开发包 安装和运行maven 创建JAV ...

  2. 如何给树莓派搭建WEB开发运行环境之JAVA篇

    在上一篇,我们已经脱掉了她华丽的外衣,你不用再添加任何华而不实的装饰,一切都交给CLI来搞定.树莓派WEB开发运行环境之JAVA篇,只需5个步骤: 安装JAVA开发包 安装和运行maven 创建JAV ...

  3. java 语言 写字板_一个简单的java语言写字板.docx

    一个简单的java语言写字板.docx 一个简单的JAVA语言写字板一.需求分析1.需求分析:现在网络上各种文档编辑器数不胜数.功能也是应有尽有,有能改变字体的,有可以改变字体颜色的,但是,这些软件有 ...

  4. python设计一个三维向量类_一个简单的三维向量类

    最近在看<3D数学基础:图形与游戏开发>.该书第六章实现了一个简单三维向量类.我看了一下代码,发现有些地方是错的,于是做了一些小修改.该三维向量类实现了一些常用的向量运算,如点乘.叉乘等. ...

  5. java 性能 火焰图_性能调优工具-火焰图

    性能调优工具-火焰图 发布时间:2019-07-17 19:29, 浏览次数:402 前言 工具的进化一直是人类生产力进步的标志,合理使用工具能大大提高我们的工作效率,遇到问题时,合理使用工具更能加快 ...

  6. Java入门知识,写一个最简单java程序

    本文目录 一.Java语言的简介 二.写一个最简单Java程序 1.Notepad配置 2.最简单的Java程序 3.代码分析 4.编译与编译常见错误 5.执行java程序 一.Java语言的简介 0 ...

  7. java实现通话_Java做一个最简单的通话程序

    Java做一个最简单的通话程序 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 Java中的网络编程是一个很重要的部分,也是其编程优越性的地方之一.在Java ...

  8. python密码破解工具_一个最简单的博客园文章密码暴力破解器-python3实现

    一个最简单的博客园文章密码暴力破解器-python3实现 我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手. 博客园的博客有个功 ...

  9. python画漏斗图_只需简单几步,教你用python完成漏斗图的绘制

    商业分析中经常会用到漏斗图.尤其是在网站流量监控.电商商品转化等一些数据运营方面.漏斗图之所以是漏斗就就是倒三角的形状,是因为用户或者流量,集中从某个功能点进入,很大可能会按照产品本身设定的流程来完成 ...

最新文章

  1. 和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器
  2. 笔记本win7共享wifi操作说明
  3. Entity Framewrok 7beta7中不同版本sql server自动生成分页sql语句的问题
  4. Scikit-Learn 机器学习笔记 -- MNIST
  5. 经典营销模型的产品化介绍
  6. cpu中的MMU的作用
  7. Knative 核心概念介绍:Build、Serving 和 Eventing 三大核心组件
  8. bootstrap下拉框分页_【Bootstrap】 bootstrap-select2下拉菜单插件
  9. Linux系统编程24:基础IO之在Linux下深刻理解C语言中的动静态库以及头文件和库的关系
  10. LeetCode 523. Continuous Subarray Sum
  11. android从一个活动到另一个活动,Android应用程序在将一个活动打开到另一个活动时崩溃...
  12. Java并发学习笔记:ReentrantLock
  13. hive集群安装,连接mysql
  14. 利用C#开发基于snmpsharpnet基础的SNMP开发应用
  15. win10下网易云网络异常问题解决办法
  16. 基于Fisher准则的线性分类器设计
  17. c语言编程中句柄无效怎么解决,Win7玩英雄联盟出现句柄无效怎么解决?
  18. 51单片机c语言学习笔记,51单片机学习笔记.docx
  19. 斜线/、反斜线\、双斜线//、双反斜线\\
  20. 习题4-10 猴子吃桃问题

热门文章

  1. 转:论Web 2.0时代的PHP(注:侧面看java)
  2. 常用名称含义(笔记)
  3. 向量范数的几何直观理解和等价定义——如何从几何上定义向量范数?
  4. Drill查询复杂数据
  5. 在线文本翻译能力新增14个直译模型,打造以中文为轴心语言的翻译系统
  6. Linux中的重定向,大于号>,小于号<
  7. 教你变漂亮的小秘诀 - Qzone日志
  8. Flask最基本示例
  9. 敖丙思维导图-Redis
  10. 给定只含 I(增大)或 D(减小)的字符串 S ,令 N = S.length。