基于Java3D的交互式三维动画的研究王静秋.docx

上传人:b****1 文档编号:2659070 上传时间:2023-05-04 格式:DOCX 页数:19 大小:26.54KB
下载 相关 举报
基于Java3D的交互式三维动画的研究王静秋.docx_第1页
第1页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第2页
第2页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第3页
第3页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第4页
第4页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第5页
第5页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第6页
第6页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第7页
第7页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第8页
第8页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第9页
第9页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第10页
第10页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第11页
第11页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第12页
第12页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第13页
第13页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第14页
第14页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第15页
第15页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第16页
第16页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第17页
第17页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第18页
第18页 / 共19页
基于Java3D的交互式三维动画的研究王静秋.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于Java3D的交互式三维动画的研究王静秋.docx

《基于Java3D的交互式三维动画的研究王静秋.docx》由会员分享,可在线阅读,更多相关《基于Java3D的交互式三维动画的研究王静秋.docx(19页珍藏版)》请在冰点文库上搜索。

基于Java3D的交互式三维动画的研究王静秋.docx

基于Java3D的交互式三维动画的研究王静秋

基于JAVA3D的交互式三维动画的研究

王静秋,王国忠

(南京航空航天大学机电学院,江苏南京)

日期:

#+!

!

)+#)#%;修回日期:

#+!

!

)+/)!

.

基金项目:

南京航空航天大学教改项目(c+",/)+,!

作者简介:

王静秋(!

"$#)),女,副教授,主要研究领域为计算机图

形图像处理#计算机辅助工业设计&

基于+ATAO$的交互式三维动画的研究

王静秋,王国忠

(南京航空航天大学机电学院,江苏南京#!

++!

/)

摘要:

为了建立基于工程图学的虚拟实验室,在计算机的屏幕上虚拟现实中零件的装配,笔者通过对两种虚拟语言

cYKT与(7C7%*的分析比较,选定以(7C7%*为虚拟平台,在引入5:

[e文件的基础上,按照现实中零件的安装和工作过程,

通过设定相应的程序来实现零件的交互和装配过程,并完成了对零件交互式三维装配动画以及工作原理的论述&以压板

为例,给出了一个基于(7C7%*的交互式三维装配动画的例子,实现了该装配体在虚拟现实中的要求,达到了虚拟装配的

目的&从而验证了该方法在现实零件装配中的预见性和优越性&

关键词:

cYKT;(7C7%*;虚拟装配

中图分类号:

HI%!

#文献标识码:

’文章编号:

!

/$%)/#"G(#+!

!

)+")+!

-.)+,

’787ACIS<=%;B7CAIB9T7O$(;9>AB9<;*A87E<;+ATAO$

S’FX(@=<)f@O

,S’FXXO:

)_0:

=<

(&:

AAQ

UKQ807=@87A7=9>AQ81;@87A>=<@=QQ;@=<,F7=e@=

U’Q;:

=7O1@8P

7=9’P1;:

=7O1@8P,F7=e@=<#!

++!

/,&0@=7)

(H8BCAIB

:

H0Q2O;2:

PQ:

U10@P;QPQ7;80@P1:

QP17[A@P0C@;1O7AA7[:

;71:

;M40@80@P[7PQ9:

=Q=<@=QQ;@=<<;720@8P7=91:

;Q7A@_QC@;1O7A7PR

PQ?

[AM:

U27;1P@=10Q8:

?

2O1Q;P8;QQ=5(7C7%*47P80:

PQ=U:

;C@;1O7A2A71U:

;?

8:

?

27;Q94@10cYKTA7=

;97=8Q4@1010Q

;Q7A@1M:

U10Q27;1P:

U10Q@=P17AA71@:

=7=94:

;d2;:

8QPPQP[7PQ9:

=@=1;:

9O8@=<5:

[eU@AQ,;Q7A@_Q910Q@=1Q;781@:

=7=97PPQ?

[AM:

U27;1P[M

PQ11@=<[O11:

=2;:

<;7?

7=98:

?

2AQ1Q910Q9QP8;@21@:

=:

U@=1Q;781@CQ%*7PPQ?

[AM7=@?

71@:

=5b@=7AAM[M17d@=<2A7=dU:

;Q67?

2AQ

,<7CQ7=

@=1Q;781@CQ%*7PPQ?

[AM7=@?

71@:

=,;Q7A@_Q9C@;1O7A7PPQ?

[AM7=9?

Q110Q;QfO@;Q?

Q=1P@=C@;1O7A;Q7A@1M5I;:

CQ910Q2;Q9@817[@A@1M7=9POR

2Q;@:

;@1M:

U10@P?

Q10:

9@=10Q;Q7A8:

?

2:

=Q=17PPQ?

[AM5

J7KF

:

cYKT

;

(7C7%*

;

C@;1O7A7PPQ?

[AM

L引言

SSS(S:

;A9S@9QSQ[)为%*图形增添了一种

有趣的新方法,利用%*图形可以创建完全存在于计

算机内存的虚幻世界,也就是被大众媒体称作的’虚

拟现实)

[!

&三维图形技术的鼻祖是EXD公司推出的

N2Q=XT三维图形库,而在此基础上产生了两种重要

的虚拟语言cYKT(c@;1O7AYQ7A@1MK:

9QA@=

性与当前网络技术相结合的特点,使虚拟语言很快得

到人们的认可并且在各行各业得到迅猛的发展&

笔者通过对cYKT和(7C7%*在设计交互式三维

动画中效果的比较,确立了以(7C7%*作为设计工具,

在I;:

3>#%*EK’G建立三维零件模型并获得静态文

件的基础上,将静态文件导入(7C7%*中,利用编程代

码实现了交互式装配动画&通过探讨虚拟世界中零件

装配的过程,得出了实现装配体缩放#任意角度旋转#

平移#初始状态转换以及在任意时刻的运动与停止的

方法,最后给出了一个交互式三维零件装配的实例&

M6’3)和+ATAO$

MUM6’3)

cYKT同ZHKT语言一样,是一种’E&DD的描述

性语言

[#]

,cYKT也是通用的%*数据描述语言

[%]

&

cYKT文件的基本要素包括文件头#造型#原型#事件

和路由&

cYKT使用场景图(E8Q=QX;720)数据结构来建立

%*场景&场景中节点(F:

9Q)是描述对象及其属性的

重要组成部分,节点按照一定的规则构成场景图,尤其

是其中的E8;@21节点对cYKT提供了强有力的补充,

通过E8;@21节点可以利用(7C7或者(7C7E8;@21程序脚

本可以满足开发者更多的要求,大大地扩展了cYKT

的功能,广泛地应用于科学研究#教育#工程#建筑#电

子商务等领域&

生变化

[!

#]

:

K71Q;@7A?

71i=Q4K71Q;@7A();

?

715PQ1&727[@A@1M(K71Q;@7A5’TTNSh&NKINF>FHhSYDH>);

#5#5,按钮程序的设计

在装配过程中,除了上面与鼠标进行交互外,还要

控制任意时刻装配过程的运动与暂停;当把装配体

(坐标系)旋转任意角度后,还要考虑能够使装配体

(坐标系)快速回到初始的角度(缺省状态),这两个是

在交互过程中需要解决的重要问题&(7C7%*提供了

’81@:

=T@P1Q=Q;监听器用来监听各种’SH事件&

论文解决这两个问题的思路是:

设定功能按钮,通

过监听器监听这个功能按钮是否被按下,如果指定的

按钮按下,监听器发出按钮按下的事件程序则通过处

理事件的781@:

=IQ;U:

;?

Q9方法进行事件的处理

["]

,转

到设定好的处理程序,达到控制的目的&由于是控制

零件(坐标系)的运动,就是控制D=1Q;2:

A71:

;内插值器

对象和’A207对象,先前在每个零件的坐标系里面都

定义了D=1Q;2:

A71:

;内插值器对象和’A207对象,在

’P1:

2)和’?

:

CQ)按钮的程序里面要合理地设定所有

D=1Q;2:

A71:

;内插值器对象的PQ1>=7[AQ方法以及’A207

对象的;QPO?

Q方法,一定要保证按下’P1:

2)按钮的时

候’A207对象一定暂停产生’A207值!

对于初始状态

的设置,在定义根节点的子节点的时候,将其子节点下

的E072Q%*(三维形体)保存起来以便于后面的调用&

按钮设定的程序如下:

1;J78dO2i=Q4H;7=PU:

;?

%*(1;);33保存原始的H;7=PU:

;?

%*

以便于=:

;?

7A按钮使用

2O[A@8C:

@9781@:

=IQ;U:

;?

Q9(’81@:

=>CQ=1Q)

{

A:

=<1@?

Q!

i!

;

@U(Q5

O;8Q()ii781@C71QJ){

7A207!

527OPQ();

’’

2:

PD=1!

5PQ1>=7[AQ(U7APQ);

’’}

@U(Q5

O;8Q()ii=:

;?

7AJ){

1;5PQ1(1;J78dO2);

4:

;A9H;7=P5PQ1H;7=PU:

;?

(1;);}

@U(Q5

O;8Q()ii;:

171QJG){

@U(7A207!

5@PI7OPQ9()){

7A207!

5;QPO?

Q();

’’}

2:

PD=1!

5PQ1>=7[AQ(1;OQ);

’’}

#5#5/机构原理动画的设计

在装配体完成的最后,可以给出装配体的工作原

理,不同的机构对应各自的工作原理,这也是一个动画

设计的过程,与上面的动画不同的是机构工作原理可

能是几个零件的组合,这个组合成为一个整体进行旋

转和平移,这就要求把几个零件所在的坐标系添加到

一个共同的坐标系中,以这个坐标系为对象,把这个对

象看作一个零件,通过D=1Q;2:

A71:

;内插值器对象和’AR

207对象的结合可以编写出针对几个对象的不同的运

动,这样便形成机构的工作原理动画&可以通过设置

按钮控制该动画,由于机构工作原理的动画是在装配

完成之后进行的,这就要求将D=1Q;2:

A71:

;内插值器对

象作用于整体坐标系,并且将PQ1>=7[AQ方法设置为

U7APQ,并且对应的’A207对象不能产生’A207值,只有

在按下按钮的时候才将D=1Q;2:

A71:

;对象和’A207对象

激活&

通过上面的系统结构设计和程序设计两个过程,

可以实现零件的装配#机构工作原理的动画和交互过

程,程序设计是本次课题的关键,尤其是多个5:

[e文件

的引入#零件的运动轨迹以及按钮程序中D=1Q;2:

A71:

;

内插值器对象和’A207对象的有效结合是课题解决的

重点&

O一个关于交互式三维零件装配动画实例

下面给出了压板的装配动画(图,是对应的效果

图),压板是由八个零件组成,先设定根坐标系E8Q=R

8Y:

:

1,对应的子坐标系S:

;A9H;7=P,在子坐标系

S:

;A9H;7=P里面放置了灯光,添加了与鼠标的交互的

图,效果图

!

!

!

!

第"期王静秋等:

基于(7C7%*的交互式三维动画的研究种对象的作用范围放在根节点上,由于三维零件的装

配,对灯光#颜色#材质#贴图没有特殊的要求,只需对

光线方向#环境光与定向光进行合适的设置&

图-设计中的逻辑结

#5#5#实现交互的程序设计

实现装配过程的交互,首先要响应键盘和鼠标的

操作,在(7C7%*的工具类中提供了通过对鼠标的输

入进行交互的K:

OPQJQ07C@:

;类,通过响应鼠标的左

键#中键和右键分别实现物体的旋转#缩放和平移,逻

辑图中所有的物体都被封装在H;7=PU:

;?

X;:

O2节点

中,要实现整个装配过程中的旋转#缩放,在允许

H;7=PU:

;?

X;:

O2对象有读写能力的基础上,还要设置

K:

OPQJQ07C@:

;对象要作用于H;7=PU:

;?

X;:

O2对象&

实现平移的代码如下:

K:

OPQ\:

:

?

[Q07C@:

;i=Q4K:

OPQ\:

:

?

(4:

;A9H;7=P);

33创建K:

OPQ[Q07C@:

;对象,并作用于H;7=PU:

;?

X;:

O2对象

(4:

;A9H;7=P)

[Q07C@:

;5PQ1E80Q9OA@=

O=9P([:

O=9P);

33设置对象的作用范围

P8Q=QY:

:

15799&0@A9([Q07C@:

;);

33将对象添加到场景中

#5#5%5:

[e文件的引入

(7C7%*可构造出一些漂亮的几何形体,但要想通

过程序来构造复杂的几何形体,其困难程度是可想而

知的

[!

!

&(7C7%*提供了一组可以用来导入一些常用

的%*图形文件接口,可以调用其它格式的三维图形

文件获得复杂的几何形体&笔者在I;:

3>中建模,导

出5:

[e文件,通过(7C7%*调用5:

[e文件获得零件对

象,这些对象放在分别放在各自的局部坐标系H;7=PR

U:

;?

X;:

O2中,这些局部坐标系最终放在一个共同的坐

标系内&

下面给出了引入5:

[e文件的程序:

2O[A@8J;7=80X;:

O28;Q71QE8Q=QX;720(E1;@=

Q);

’’

@=1UA7ED\>;

N[eQ81b@AQUi=Q4N[eQ81b@AQ(UA7

71)(-"5+^K7105

ID3!

.+5+));

E8Q=QPi=OAA;

1;M{PiU5A:

79(U@AQ=7?

Q);

’’33错误处理

:

[eHX5799&0@A9(P5

O2());

2O[A@8:

[eT:

79Q;(E1;@=

Q);

U@AQ=7?

Qij17:

1:

=<5:

[ej;

’’

=Q4K7@=b;7?

Q(=Q4:

[eT:

79Q;(U@AQ=7?

Q));

#5#5-零件装配动画的设计

实现零件的装配动画,(7C7%*为编程者提供了

D=1Q;2:

A71:

;内插值器对象和’A207对象,通过这两者的

结合可以编写出针对三维物体的运动和外观的可视化

效果的变化&

怎么解决三维物体的运动和外观是一个重要的内

容,由于每个零件都放在独立的坐标系中,实现物体运

动其实就是实现零件所在坐标系的运动,因此首先要

确定好每个零件在动画编程中所需的时间控制环节,

也就是要正确配置’A207对象,根据不同零件的装配

要求可以选择I:

P@1@:

=D=1Q;2:

A71:

;对象(使局部坐标系

在两个点之间按照’A207提供的方式移动位置)%Y:

17R

1@:

=D=1Q;2:

A71:

;对象(绕某轴线转)%I:

P@1@:

=I710D=1Q;2:

R

A71:

;对象(在规定的时间周期内,对某一个坐标系按

照指定的路径制定的运动方式进行坐标系的移动)或

者其它对象,确定好每个零件的运动方式#运动时间#

运动路线以实现对不同零件的运动控制;由于在(7C7

%*中笔者引入了所有需要装配的零件,这就造成了在

零件装配的开始,最后装配的零件就会一直显示在页

面,给人们造成视觉的瑕疵,为了解决这个问题,可以

在某个零件装配之前,先把该零件设置为背景色或者

把零件设置为透明色,让它处于’不显示)状态,当需

要该零件装配的时候,再将零件显示出来进行装配,也

就是要对零件(也就是零件所在的坐标系)进行可视

化效果的设置,可以通过’A207对象和形体颜色&:

A:

;R

D=1Q;2:

A71:

;对象或者形体透明度H;7=P27;=Q8MD=1Q;2:

A7R

1:

;对象来改变形体效果获得想要的结果&需要强调

的是D=1Q;2:

A71:

;内插值器对象作用的坐标系必须要允

许写的功能:

:

[eK:

CQI:

P5PQ1&727[@A@1M(H;7=PU:

;?

X;:

O25’TTNShHY’FER

bNYKhSYDH>);

2:

PD=1i=Q4I:

P@1@:

=D=1Q;2:

A71:

;(7A207,:

[eK:

CQI:

P);

在用&:

A:

;D=1Q;2:

A71:

;对象时,为了使颜色发生变

化,需要在定义形体材质时通过下面设定允许颜色产

!

!

+!

计算机技术与发展第#!

卷MUN+ATAO$

(7C7%*被称为第-代的三维图形应用程序接

[-]

,(7C7%*是(7C7#E*]的标准的扩展,它可以和

普通的(7C7#*#E4@=<#’SH很好地结合,并且对底层

的图形库N2Q=XT和*@;Q81G进行了封装,其意义非同

寻常

[,]

&(7C7%*的优点在于:

提高了编写三维图形程

序的层次,它使用户只考虑图形对象本身,而不用自己

去实现这个对象,也不需要考虑光照#着色#碰撞检查

等极其复杂的图形学问题;(7C7%*集成了(7C7’ID的

功能,一次编程就可以跨平台运行,而且可以充分借用

(7C7的各种功能;(7C7%*最突出的优点在于它代码的

可传输性,它的代码可以自由传输,能够使722AQ1方便

地从服务器传给客户端,也就是说传输的不是图像本

身,而是控制三维图像生成的图像和程序,因而大大节

省了网路传输的数据量

[/]

&

MUO6’3)与+ATAO$在零件装配上的比较

(7C7%*和cYKT作为两种虚拟现实的语言,都可

以动态或者静态的显示三维图像,并实现交互&本课

题的模型都通过I;:

3>建模,将模型引入(7C7%*和

cYKT中进行动态显示的图像分别如图!

#图#所示&

通过比较,可以发现cYKT在该课题中的诸多不

足:

图!

通过cYKT编程获得的零件图像

图#通过(7C7%*编程获得的零件图像

首先从技术上在I;:

3>中的建模需要导入到%*E

K’G进行转换才可以被cYKT利用;虽然cYKT编程

简便,但是与之相适应的浏览器性能不佳;cYKT中的

缺少了有效的碰撞检测的节点;最重要的是在cYKT

中,每个零件装配的临界点不能准确控制,随时控制零

件装配的动画和状态的复原更是一个难关&

其次通过两个图像的对比读者可以观察到:

通过

cYKT编程得到的零件图像表面粗糙;拉近cYKT获

得的图像,因为视角的原因会让观察者产生’零件畸

形)的感觉&

再次cYKT语言内插器节点计算功能薄弱,对于

基于物理的动画缺乏描述能力,再加上其造型和动画

都有一定的随意性,在动态仿真#科学计算可视化#虚

拟装配等要求精确复杂控制的领域表现得不尽人意,

限制了cYKT在虚拟装配中的应用

[/]

&

利用(7C7%*编程能够克服在上面的诸多缺点,

并且(7C7%*在检测碰撞方面有良好的效果&不同的

检测算法具有不同的特点和面向不同的应用对

[$,.]

,其中T@=&7==M最近特征算法

["]

与基于层次数

抓结构的层次算法

[!

+]

在碰撞检测方面达到良好的效

果,由此笔者选定(7C7%*作为本次课题的工具&

N利用+ATAO$设计交互式三维零件装配

动画

以虚拟语言(7C7%*为编程工具,通过编程对模

型的控制,实现了装配体的缩放#任意角度的旋转#平

移及在任意的时刻的交互以及机构的工作原理&该设

计分为系统结构设计和程序设计两部分&

NUM系统结构设计

(7C7%*的编程空间采用的是场景图结构(E8Q=Q

X;720E1;O81O;Q),它是有向无环图,它的场景图结构

[,]

和设计中的逻辑结构图分别如图%#图-所示&

图%场景图结构

(7C7%*应用程序的结构和一棵大树很相似,从逻

辑结构图可以看出每个场景图中都有一个虚拟空间形

象的称为’根节点#,在根节点的下面对应一个场所,

每个场所有多个基准坐标系,每个坐标系里面摆放着

三维形体,这就像一个树干上分散着很多树枝,树枝上

面又长满了树叶一样&

NUN程序设计

#5#5!

背景$材质$灯光的设计

按照图-,笔者把背景#材质的颜色#灯光以及各

K:

OPQJQ07C@:

;类,并引入了九个子坐标系,八个子坐

标系里面分别引入八个零件,另一个子坐标系里面组

合几个零件,每个子坐标系都有作用于坐标系的D=1Q;R

2:

A71:

;内插值器对象用以实现动画过程,最后又设计

了几个按钮的程序&

P结束语

通过对(7C7%*场景图分析,给出了实现三维动画

的逻辑结构图,讨论了文件的引入#零件的装配和交互

方法以及按钮的交互程序&最后通过一个实例实现了

交互式三维零件装配的动画#交互过程,形象地表达了

机构的工作原理,满足了方便#形象#直观的要求&用

虚拟的计算机世界来表达了现实的空间,可以广泛地

应用于教学#科研#网页建设等领域,有广阔的应用前

景&

参考文献:

[!

]K7;;@=&,&7?

2[QAAJ5#!

天学通cYKT#[K]5王海燕,李

庆军,曲庆尧,等译5北京:

人民邮电出版社,!

"".:

!

)%5

[#]吴小华,姜安德,周玲5cYKT从入门到精通[K]5北京:

国防工业出版社,#++#:

/)"5

[%]TQ7Y,K71PO97],K@<7P0@1O]5妙用(7C7及cYKT开发三

维图形[K]5葛晓程,译5北京:

电子工业出版社,!

"",5

[-]H0Qb:

O;10XQ=Q;71@:

=:

U%*X;720@8P’IDPZ7P’;;@CQ9[>J3

NT]5!

".$50112:

33e7C7PO=58:

?

32;:

9O81P3(7C7)?

Q9@73%*3

8:

AA71Q;7A35

[,]都志辉,刘鹏,陈渝5(7C7%*编程实践(((网络上的三

维动画[K]5北京:

清华大学出版社,#++#:

!

)!

!

5

[/]张本生,刘海光,黄波5基于cYKT和(7C7的虚拟装配

复杂控制的实现[(]5机械工程与自动化,#+!

+(!

):

#-)

/5

[$]T@=K&5>UU@8@Q=1&:

AA@P@:

=*Q1Q81@:

=U:

;’=@?

71@:

=7=9Y:

R

[:

1@8P[K]5*Q27;1?

Q=1:

U>AQ81;@87A>=<@=QQ;@=<7=9&:

?

R

2O1Q;E8@Q=8QP,V=@CQ;P@1M:

U&7A@U:

;=@7JQ;dQAQM,!

""%5

[.]王志强,洪嘉振,杨辉5碰撞检测问题研究综述[(]5软件

学报,!

""",!

+(,):

-,),,!

5

["]T@=K&,&7==M(b5’U7P17A<:

;@10?

U:

;@=8;Q?

Q=17A9@P17=8Q

87A8OA71@:

=[&]33D=:

I;:

8QQ9@=

U10QD>>>D=1Q;=71@:

=7A

&:

=UQ;Q=8Q:

=Y:

[:

1@8P7=9’O1:

?

71@:

=5E78;7?

Q=1:

,&’:

[P5=5],!

""!

:

!

++.)!

+!

-5

[!

+]XO@[7PT(,ZPO*,\07=

Q10:

91:

1;Q7A

1@?

Q9@P17=8Q8:

?

2O171@:

=7?

:

=

:

C@=<8:

=CQ6[:

9@QP[(]5

&:

?

2O171@:

=7AXQ:

?

Q1;M:

H0Q:

;M7=9’22A@871@:

=P,E2Q8@7A

DPPOQ:

=c@;1O7AYQ7A@

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2