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@