保存文件,命名为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. EM算法理解的九层境界
  2. grep -v、-e、-E
  3. python的全称_python名称空间介绍
  4. 输入控件tagsinput
  5. Linux学习之zImage内核镜像解压过程详解
  6. 春天:注入列表,地图,可选对象和getBeansOfType()陷阱
  7. java gc与finalize_finalize方法与Java GC
  8. angular 常用指令的使用
  9. 在属性级情感分析中结合BERT和语法信息
  10. ApacheCN 翻译/校对/笔记整理活动进度公告 2019.9.20
  11. svn访问路径提示Unable to connect to a repository at url
  12. php mcrypt blowfish,php加密算法blowfish
  13. 维京传奇第四季/全集Vikings迅雷下载
  14. 谈谈用户体验与风控的平衡性
  15. php js sdk 签名算法,签名算法 · PAYJS API 开发文档
  16. 如何画架构图之C4方法
  17. 543、RabbitMQ详细入门教程系列 -【Confirm与Mandatory】 2022.09.05
  18. 中职组网络安全C模块全漏洞脚本讲解包含4个漏洞的脚本
  19. 一起学 WebGL:感受三维世界之视图矩阵
  20. matlab与origin关联,Matlab与Origin软件在“电路及磁路”教学中的应用

热门文章

  1. 农民网红“大米哥”的中医养生观
  2. 最长回文子串和最长回文子序列
  3. Hyper-V Server 2016配置远程管理
  4. 服务器命名规则:国外三巨头有何秘密?
  5. 使用bert的预训练模型做命名实体识别NER
  6. 《王者荣耀》马超上线时间公开 马超技能玩法一览
  7. TypeError: module() takes at most 2 arguments (3 given)
  8. 离理性太近,离灵魂太远
  9. PowerApps使用 Microsoft Flow,一个强大的内置工作流引擎
  10. 小米2S电池电量用尽充电无法开机解决方法