- 浏览: 606627 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (365)
- Java 基础知识(笔试面试有用) (35)
- SQL 相关 (11)
- Oracle笔试 (1)
- Java 笔试面试 (11)
- LINUX (12)
- ExtJS (21)
- Javascript (17)
- WebGIS (2)
- 软件工程 (3)
- 数据库 (17)
- 项目管理 (63)
- 工作流 (2)
- 计算机网络 (3)
- ZigBee技术及应用 (24)
- 单片机(AVR Studio) (7)
- 项目人力资源管理 (3)
- 项目管理高级知识 (4)
- JAVA技术 (12)
- 项目管理中的概念 (3)
- SQL SERVER (1)
- C++ (1)
- C/C++编程经验 (12)
- C和C++面试笔试题 (12)
- 其他IT技术笔试面试 (6)
- 名企笔试面试集锦 (16)
- 非技术 (10)
- C#相关 (1)
- Matlab相关 (2)
- 计算机专业课相关 (2)
- Web Service (1)
- Excel 使用 (1)
- PhotoShop相关 (4)
- ASP 相关 (2)
- android (1)
- Java WEB 相关 (1)
- web 安全相关 (7)
- 网络安全 (1)
- IBatis (1)
- web 开发技巧 (2)
- css 相关 (1)
- Ruby相关 (2)
- 生活 (3)
- 操作系统安全相关 (6)
- 操作系统相关 (1)
- PHP相关 (3)
- 开发经验 (12)
- Redis (1)
最新评论
下面我们给出实现JAVA 3D 实时旋转的代码,根据SOCKET接受到的数据进行旋转,SOCKET接受到的数据是三个旋转后的角度,然后3D图形根据这三个角度来实时的更新,如果有不懂的可以问我。
//3d 显示图像的代码
package com.neuera.service;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GraphicsConfiguration;
import java.io.IOException;
import javax.media.j3d.*;
import javax.vecmath.*;
/**
* 根据事件来旋转立方体
* 事件是每秒执行一次
*/
public class Java3DExample extends Applet{
public BranchGroup scene;//场景
public RotationInterpolator rotatorX;//旋转X
public RotationInterpolator rotatorY;//旋转Y
public RotationInterpolator rotatorZ;//旋转Z
public static Frame frame;//窗口
public BranchGroup objRoot;//旋转根节点
public SimpleUniverse simpleU;//显示
public Alpha rotationAlpha;
/**
* 构造函数
*/
public Java3DExample(){
this.init();
}
/**
* 初始化
*/
public void init() {
setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas3D = new Canvas3D(config);
add("Center", canvas3D);
try {
scene = createSceneGraph();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// SimpleUniverse is a Convenience Utility class
simpleU = new SimpleUniverse(canvas3D);
simpleU.getViewingPlatform().setNominalViewingTransform();
simpleU.addBranchGraph(scene);
}
public BranchGroup createSceneGraph() throws InterruptedException {
// Create the root of the branch graph
objRoot = new BranchGroup();
objRoot.setCapability(BranchGroup.ALLOW_DETACH);
TransformGroup objRotate = new TransformGroup();
objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objRoot.addChild(objRotate);
ColorCube cube=new ColorCube(0.4);
objRotate.addChild(cube);
objRoot.addChild(new Axis());
/*****行为定义******/
TimeBehavior b=new TimeBehavior();
b.setObjRoot(objRoot);
BoundingSphere movingBounds = new BoundingSphere(new Point3d(0.0, 0.0,0.0), 100.0);
b.setSchedulingBounds(movingBounds);
objRoot.addChild(b);
objRoot.compile();
return objRoot;
}
/**
* 主函数,显示窗口
* @param args
* @throws Exception
* @throws IOException
*/
public static void main(String[] args) throws IOException, Exception {
Java3DExample.frame = new MainFrame(new Java3DExample(),512,512);
new SocketServer().service();
}
}
// Behavior
package com.neuera.service;
import java.util.Enumeration;
import javax.media.j3d.Behavior;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.WakeupOnElapsedTime;
import javax.vecmath.Matrix3d;
public class TimeBehavior extends Behavior {
public BranchGroup objRoot;
public BranchGroup getObjRoot() {
return objRoot;
}
public void setObjRoot(BranchGroup objRoot) {
this.objRoot = objRoot;
}
public static int temp = 0;
public static double angleX;// X轴方向的角度
public static double angleY;// Y轴方向的角度
public static double angleZ;// Z轴方向的角度
/**
* 初始化
*/
@Override
public void initialize() {
this.wakeupOn(new WakeupOnElapsedTime(100));// 添加事件,每秒一次
}
@Override
public void processStimulus(Enumeration arg0) {
this.wakeupOn(new WakeupOnElapsedTime(500));
System.out.println("收到数据");
Matrix3d m1 = new Matrix3d();//x 方向
Matrix3d m2 = new Matrix3d();//y 方向
Matrix3d m3 = new Matrix3d();//z 方向
m1.rotX(Math.toRadians(angleX));// 绕X轴旋转45度。
m2.rotY(Math.toRadians(angleY));// 绕y轴旋转45度。
m3.rotZ(Math.toRadians(angleZ));// 绕z轴旋转45度。
//
m2.mul(m3);
m1.mul(m2);
Transform3D transform = new Transform3D();
transform.setRotation(m1);
TransformGroup a = (TransformGroup) objRoot.getChild(0);
// objRotate.setTransform(axis);
a.setTransform(transform);
}
}
发表评论
-
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while
2012-10-30 15:22 3237rxtxserial.dll 没有的问题。 保证rxtxse ... -
JSP 乱码
2012-07-30 14:58 850jsp乱码问题的一些解决方法 一、J ... -
JSP 页面跳转
2012-07-27 16:52 889跳转页面分为两种: (1).一种是重定 ... -
JAVA 学习过程
2012-07-27 16:49 8631. Java语言基础 谈 ... -
JAVA 打印
2012-07-27 16:49 1671在这篇文章里,来自Pro Java Programm ... -
JSON can only serialize finite numbers.
2012-07-14 16:47 1097java.lang.ArithmeticExceptio ... -
eclipse java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path throw
2012-07-14 15:49 5331eclipse java.lang.UnsatisfiedLi ... -
JAVA 3D 旋转配置
2012-06-07 20:36 1084首先 在自己的工程中加入以下jar包 1== j3d- ... -
amchart 的使用一
2012-06-05 21:42 1159总的来说: amcharts 要一个“配置文件”( ... -
SVN clean up
2012-05-30 08:57 787SVN 本地更新时,由于一些操作中断更新,如磁盘空间不够,用户 ... -
java阻塞队列学习
2012-04-26 14:16 893import java.util.concurrent. ...
相关推荐
3. **3D旋转**:Java 3D提供了旋转操作,允许用户以任意轴和角度旋转3D对象。这通常通过`Transform3D`类来实现,该类可以对坐标系统进行旋转、平移和缩放操作。通过设置`Transform3D`的旋转参数,可以改变对象的显示...
这个“java3d旋转”主题涉及了在Java3D环境中实现对象旋转的核心概念和技术。Java3D通过使用OpenGL底层图形库提供了丰富的功能,使开发者能够构建具有深度、透视和真实感的3D场景。 在Java3D中,旋转可以通过`...
"一个图片3D旋转方法" 根据给定的文件信息,我们可以总结出以下几个知识点: 1. 图像翻转动画效果的实现:通过继承Animation类,重写initialize和applyTransformation方法可以实现图片的3D旋转动画效果。 在...
JAVA3D,全称为Java 3D API,是Oracle公司推出的一种基于Java语言的三维图形编程接口。这个技术为开发者提供了强大的工具,用于创建复杂的、交互式的三维图形应用程序。JAVA3D官方实例对于初学者来说是一份宝贵的...
3. **显示三维文字线程**:在Java 3D中,为了实现动态效果,可能会创建单独的线程来处理文字的更新、动画或旋转等效果。多线程允许程序在不阻塞用户界面的情况下进行复杂计算。 4. **从HTML文件中得到显示信息**:...
在Java3D中,你可以创建3D对象,如立方体、球体,然后对它们进行旋转、平移和缩放等操作,还可以添加光照、纹理和动画效果,实现逼真的视觉体验。 Java3D 1.3版本是该技术的一个早期版本,它引入了许多基础的3D图形...
这个开发包包含多个版本,如java3d-1_3-windows-i586-directx-sdk.exe、java3d-1_5_1-windows-i586.exe和java3d-1.5.0.exe,分别对应不同的更新和优化,适应不同开发者的需求。 1. **Java 3D API**: Java 3D API...
Java3D是Oracle公司开发的一个开源三维图形编程库,它为Java程序员提供了一种在Java平台上构建三维图形应用的能力。这个技术基于OpenGL,允许开发者创建复杂的3D场景,并且能够与用户进行交互。在Java3D中,我们通常...
3. **应用变换**:通过`TransformGroup`或`Transform3D`来对物体进行旋转、平移和缩放,控制它们在空间中的位置和姿态。 4. **添加光照效果**:设置光源来影响场景的外观,包括点光源、平行光和聚光灯等。 5. **...
Java3D是一个强大的Java库,用于在二维屏幕上创建和展示三维图形。它是Java平台上的一个扩展,使得开发者能够构建复杂的3D应用,如游戏、模拟器、科学可视化工具等。这个教程显然旨在帮助学习者掌握Java3D的核心概念...
Java3D是一个基于Java语言的三维图形编程库,它为开发者提供了一种高效、平台无关的方式来创建和操纵复杂的3D场景。这个“java3d jar包下载.rar”压缩包包含了运行和开发Java3D应用程序所需的类库文件。下面将详细...
在实际开发中,可能需要用到Java或Kotlin(Android的主要开发语言)以及相关的3D图形库,如Android的OpenGL ES API或者其他第三方库。通过这种方式,开发者可以创建出富有创新性和吸引力的用户界面,提升用户体验。
运用计算机图形学知识通过java3D设计制作了一个用户界面。该用户界面实现了对二维图形的绘制,三维模型的平移,旋转,放缩等基本操作...实现功能有:2D绘图、画板、3D旋转、平移、缩放、漫游、通过键盘与鼠标进行交互。
Java3D是一个基于Java平台的三维图形编程库,它提供了丰富的API来帮助开发者创建复杂的3D场景和应用程序。Java3D是Sun Microsystems开发的,并且是Java Foundation Classes (JFC)的一部分,旨在为Java应用程序提供...
java3d 简单例子 圆锥体 可以旋转,可用鼠标调节大小
Java3D是一个强大的三维图形库,它允许程序员创建和展示复杂的3D场景,包括对象的旋转、缩放以及交互功能。在这个"java3d作业带有动画"中,我们可以推测这是一份使用Java3D实现的项目,包含了声音、动画和图片元素,...
Java3D是一个基于Java平台的三维图形编程库,它为开发者提供了一套强大的API来创建和展示复杂的3D场景。这个“java3D_jar”压缩包包含了运行和开发Java3D应用程序所需的必要组件,包括类库和其他资源。在Java世界里...
Java3D是Oracle公司开发的一种基于Java平台的三维图形编程库,它允许开发者创建复杂的3D场景,并在Java应用程序或Web应用中展示。这个官方教程是针对Java3D的详细学习资源,以英文PDF格式呈现,共分为7个章节,涵盖...
JAVA3D 安装教程 JAVA3D 是一个 Java 库,允许开发者创建交互式 3D 图形应用程序。以下是 JAVA3D 安装教程的详细介绍: 安装 JAVA3D 首先,需要下载 JAVA3D 的库文件,并将其安装在您的计算机上。在 Windows 系统...
这通常涉及到对特定面进行旋转变换,这可以通过应用旋转矩阵或者使用Java3D提供的Transform3D类来实现。Transform3D允许我们执行平移、旋转和缩放操作,然后将这些变换应用到相应的3D对象上。 代码中的解释对于初学...