(计算机软件与理论专业论文)二维角色动画编辑器的研究与实现.pdf_第1页
(计算机软件与理论专业论文)二维角色动画编辑器的研究与实现.pdf_第2页
(计算机软件与理论专业论文)二维角色动画编辑器的研究与实现.pdf_第3页
(计算机软件与理论专业论文)二维角色动画编辑器的研究与实现.pdf_第4页
(计算机软件与理论专业论文)二维角色动画编辑器的研究与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学硕士学位论文 摘要 计算机动画技术是一个综合利用计算机图形学、数学、物理学、生理学、 艺术和其他相关学科知识的产物,是用计算机生成连续的具有真实感的画面。 计算机动画可以应用在教学、仿真、数字娱乐等领域。随着计算机动画的广泛 应用,许多国家也把动画产业定位为新的经济增长点,我国政府也开始大力扶 持和发展本国动画产业,并将相关科研列为国家科技发展计划中的一项重要内 容。但是目前的动画软件在制作较复杂动画时候还存在着工作量大和编程复杂 的问题。 本文用基于面向对象的思想给出了二维角色动画编辑器的各种模型,对角 色动画中的各种图元和数据进行了定义,也对各种图元的结构层次和基本操作 给出了定义,主要的目的是设计和实现一个二维角色动画编辑器,实现二维物 体的绘制和简单的运动,尽可能减少绘制部分( 即关键帧的绘制) ,使动画制作 过程更加简单,方便。 本文首先介绍了与角色动画编辑器相关的图形学的知识和技术,然后对二 维形体变形技术进行了介绍,指出了二维形体变形的两个关键问题:图形顶点 对应和图形顶点插值,在分析和比较了已有二维物体插值算法的基础上,给出 了利用质心和三个顶点连线表示的向量的快速动画变形方法。接下来在第四章 是对系统进行总体设计以及系统基本功能的分析设计。第五章是对角色编辑部 分的详细设计,主要包括图元类、角色类的数据结构以及类的设计和实现:实 现撤消和重做功能的类的设计和实现,以及基本图元的绘制、图元如何合并成 角色以及图元的保存和导入方法。第六章是动作设计的详细设计,主要包括变 形动画中的插值函数的设计;在初始帧和结束帧顶点个数不一样的情况下,顶 点的添加方法;变形动画的生成算法和多边形对圆进行逼近算法:关键帧动画 中的角色缩放动画和角色行走动画的设计。 关键词:变形;图元;插值;计算机动画;向量 a b s t r a c t l h ec o m p u t e ra n i m a t i o nt e c h n o l o g y , w h i c hm a k ec o n t i n u o u s h y p o t h e s i z e d p i c t u r e s , i sac o m p r e h e n s i v eu t i l i z a t i o no fc o m p u t e rg r a p h i c s ,m a t h e m a t i c s ,p h y s i c s p h y s i o l o g y ,a r ta n do t h e rr e l a t e dk n o w l e d g e t h ec o m p u t e ra n i m a t i o nc a nb e a p p l j e d t o t e a c h i n g ,e m u l a t i o n ,d i g i t a le n t e r t a i n m e n ta n ds oo n w i t ht h e e x t e n s i v e a p p l i c a t i o no fc o m p u t e ra n i m a t i o n ,a n i m a t i o ni n d u s t r yh a sb e e no r i e n t a t e da san e w e c o n o m l cg r o w t hp o i n ti nal o to fc o u n t r i e s i nt h i ss i t u a t i o n ,o u rg o v e 眦n e ma l s o b e 9 1 n st os u p p o r ta n dd e v e l o pn a t i v ea n i m a t i o ni n d u s t r y , a n dc o n s i d e r si t sr e l e v 趴t s c l e n t l n cr e s e a r c ha sa ni m p o r t a n tp a r t i nt h es t a t es c i e n t i f i cm dt e c h n o l o g i c a l d e v e j o p m e n tp r o g r a m h o w e v e r , t h ec u r r e n ta n i m a t i o ns o f t w a r eh a st o f a c et h e c o m p l e xp r o g r 黝1 n gp r o b l e m sa n dh e a v yw o r k l o a dw h e ni t m a k e sc o m p l e x a n i m a t i o n 一 lh i st h e s i sp r o p o s e sal o to fs y s t e mm o d e l sw h i c hb a s e d o nt h ei d e ao f o b j e c t - o r i e n t e d ,a n dd e f i n e sav a r i e t yo fg r a p h i ce l e m e n t ,d a t ao ft h ec h a r a c t e r 锄m a t l o n s t r u c t u r a ll e v e lo fg r a p h i ce l e m e n ta n db a s i co p e r a t i o n t h em a i n p u r p o s e o ft h l st h e s i si st od e s i g na n dr e a l i z eat w o - d i m e n s i o n a lc h a r a c t e r a n i m a t i o ne d i t o r w h i c hc a l lr e a l i z et h e d r a w i n go ft w o d i m e n s i o no b j e c t a tt h es 锄e t i m ei tc a n r e d u c et h ew o r k l o a do fd r a w i n gp a r ta n dm a k et h ep r o c e s so fa i l i m a t i o np r o d u c t i o n m o r es i m p l ea n dc o n v e n i e n t h r s t ly ,t h i st h e s i si n t r o d u c e st h e k n o w l e d g ea n ds k i l l so fc o m p u t e rg r a p h i c s t h a tl sr e l a t i v et oc h a r a c t e ra n i m a t i o ne d i t o r t h e n ,i tp o i m so u tt w o k e yi s s u e so ft h e t w o - d i m e n s i o ns h a p em o r p h i n g :v e r t e xc o r r e s p o n d e n c ea n dv e r t e xi n t e r p 0 1 a t i o no f g r a p h i c s w ep o i n to u tr e s p e c t i v e l yt h ec h a r a c t e r i s t i c sa n di t si j l s u 箍c i e n c i e so f t h e m m nm e t h o d si nt h i sr e s e a r c h a r e aa sw e l la si t s o p e nq u e s t i o n s b a s e do nt h e p r e v l o u sr e s e a r c h ,w ep r o p o s e daf a s ti n t e r p o l a t i o nt e c h n i q u ef o rt w oc o m p a t i b l e t r i a n g u l a t i o n s e a c ht r i a n g l ei nat r i a n g u l a t i o ni sr e p r e s e n t e db yt h r e ev e c t o r s ,t h e s e v e c t o r sw i t ho n es id ejo i n e da tt h e c e n t r o i do ft h et r i a n g l ea 1 1 dt h e o t h e rs i d e c o n n e c t m gt h et h r e ev e r t i c e so ft h et r i a n g l e c h a p t e r4i st h ee n t i r ed e s i g no ft h j s s y s t e m ,w h i c hi n t r o d u c e sa n da n a l y z e st h ep r i m a r y f u n c t i o n c h a p t e r5m a i n l v i i 武汉理工大学硕士学位论文 i n t r o d u c e st h ed e t a i l e dd e s i g no ft h ec h a r a c t e re d i t o r , w h i c hi n c l u d e sd a t as t r u c t u r e o fg r a p h i ce l e m e n ta n dc h a r a c t e r , i m p l e m e n t a t i o na n dd e s i g no fu n d o r e d of u n c t i o n a sw e l la st h eb a s i cg r a p h i cd r a w i n g ,c o n v e r s i o no fg r a p h i ct or o l ea n dt h es a v i n g m e t h o do fg r a p h i ce l e m e n ta n dr o l e c h a p t e r6i n t r o d u c e st h ed e t a i l e dd e s i g no ft h e a c t i o n , w h i c hi n c l u d e st h ed e s i g no fi n t e r p o l a t i o nf u n c t i o n ,t h e v e r t e xa d d i t i o n m e t h o dw h e nt h ei n i t i a lf r a m ea n d e n df l a m eh a sd i f f e r e n tv e r t e xn u m b e r , i n t e r p o l a t i o nm e t h o do fm o r p h i n ga n i m a t i o n ,a p p r o x i m a t i o na l g o r i t h m sf o rc i r c l et o p o l y g o n ,k e y f r a m ea n i m a t i o ni nt h ez o o ma n i m a t i o na n dw a l k i n g a n i m a t i o no ft h e r 0 1 e k e yw o r d s :m o r p h i n g ,g r a p h i ce l e m e n t ,i n t e r p o l a t i o n ,c o m p u t e ra n i m a t i o n , v e c t o r 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学和其它教育机构的学位和证书而使用过的材料。与我一 同工作的同志对本研究所作的任何贡献均已在论文中作了明确的说 明并表示了感谢。 签名:至叁日期:坠塑:垦:f 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留交向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权武汉理工大学可以将本学位论文的 全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制 手段保存或汇编本学位论文。同时授权经武汉理工大学认可的国家有 关机构或论文数据库使用或收录本学位论文,并向社会公众提供信息 服务。 ( 保密的论文在解密后应遵守此规定) 研究生( 签名) :至森导师( 签名) :求沥缝日期妒o | ( i 武汉理工大学硕士学位论文 1 1 研究背景 第1 章引言 计算机图形学的研究起源于美国的麻省理工学院。5 0 年代,m i t 在所生产 的旋风1 号计算机上,首次使用由计算机控制驱动的c r t 显示器来显示操作界 面。1 9 6 2 年第一台光笔式交互式图形显示器在m i t 的林肯实验室研制成功, 这是i v a n s u t h e r l a n d 以博士论文形式完成的研究课题,标志着现代交互式图形 学的开始。进入7 0 年代中期,人们普遍认识到设备无关的图形软件包标准化的 重要性。1 9 7 7 年,a c m s i g g r a p h 推出了c o r e 图形系统,对图形软件标准化 起了积极作用;1 9 8 5 年产生了第一个二维图形软件国际标准g k s :1 9 8 8 年产 生了第一个三维图形软件国际标准g k s - - 3 d 。我国从7 0 年代初期开始图形显 示器与相应软件的研制开发,而且其成果也已在国防、科研、生产等领域广泛应 用【1 】o 计算机动画是是伴随着计算机硬件和图形算法的高速发展而形成的计算图 形学的一个分支,它是通过对真实世界的模拟和对想象世界的创造再现,综合 利用计算机科学、艺术、数学、物理学和其它相关学科,利用人体视觉暂留, 在人眼面前生成一系列连续的图像,使视觉产生动态而逼真效果的一项技术。 计算机动画按照不同的动画技术可以分为:关键帧动画、变形动画、关节 动画、人体动画和基于物理的动画【2 】。关键帧也就是关键的画面,关键帧动画 的中间帧是计算机通过插值计算的方法来完成的,如3 dm a x 的动画机理就是 采用这种技术。基于物理的画面其运动规律要符合物理规律,基于运动的画面 即运动动画( 通常据说的刚体运动动画) 要符合运动学和动力规律。计算机动 画是通过足够快的速度显示一系列的单个帧以生成活动的感觉。一般而言,动 画播放要到每秒1 5 帧以上时才能连续。不管是什么类型的动画,电脑动画在制 作时同样要经过传统动画的四个阶段,只不过电脑的使用,大大简化了工作程 序,可以方便快捷的制作出令人满意的作品。 1 2 研究意义 从表1 1 的传统动画与计算机动画比较可以看出,计算机动画和传统动画 相比,具有许多的优越性。可以方便的利用计算机进行角色设计、背景绘制、 武汉理工大学硕士学位论文 描绘上色等常规工作,它具有操作方便、颜色一致的特点,这样再也不用担心 颜料变质等问题。 表1 1传统动画与计算机动画比较 制作阶段传统动画计算机动画计算机优势 原画创作画出关键动作画出关键动作无 中间画制作画出两幅原画之间的动画出两幅原画之无 作间的动作 上色利用计算机软件 将透明片的画稿涂上各给己输入计算机 有 种颜色的画稿上色 将动画拍摄到彩色胶卷 或录像带上。( 传统动画 的一帧画面是由多层透 拍摄明胶片上的图画叠加合 成的,拍摄时将背景放 在最下一层,中间各层利用计算机软件 放置不同的角色或前景合成( 动画软件有 等透明片中,也同样使用 了分层的方法) 编辑完成动画各片段的连 接、排序等,最后合成 导演要求的动画片效果 录音混合语言、音乐、音响 效果等,最后记录在胶 片或录像带上 目前,计算机动画在社会发展的众多的领域都有着应用发展前景,它能够 为理论研究、工业生产、影视制作、广告设计、文化教育、航空航天、体育训 练等提供有效的演示方法、论证依据和研究工具。例如在“海底总动员 、“魔 鬼终结者”、“汽车总动员 和“星战前传3 等优秀电影中,我们可以充分领 2 武汉理工大学硕士学位论文 略到计算机动画的高超魅力。可以说计算机动画已经成为我们生活中必不可少 的一部分,因此研究计算机动画技术也显得有其非常重要的意义。通过对现有 作品的了解和动画技术资料的收集研究,我们发现,尽管实现计算机三维动画 的方法和途径很多,但大体可以归纳为两种:一种是用工具软件直接进行手工 制作,另一种是通过计算机语言( 如:c 、c 4 - + ) 来实现。但是由于利用编程来 实现建模必须要有良好的编程语言基础和非常高的编程能力,而且大多数时候 都要利用计算机软件系统本身所带的图形库函数来完成图形软件的开发,如c 语言中d o s 环境下的图形函数库【3 j g r a p h i c s 1 i b 。这些图形库都是由相对独立的 一组函数( 画点,画圆,设置颜色等) 构成的,抽象的级别比较低,而且它也不 可能提供对点,线,圆等进行缩放、平移等操作【4 】,使得图形软件开发人员必 须在较低的层次上进行,开发工作非常困难,而且代码重用率也非常低,如果 使用面向对象技术在图形函数库的基础上建立起一个面向对象的图形类库,使 得图形应用系统用面向对象的方法和语言来构造,便能降低开发的难度,减少 重复劳动,且开发出的软件错误少,易于移植和维护,因此这种方法一般由计算 机专业人员才能实现;利用现有的工具软件不受这样的限制,只要熟练的掌握 动画设计工具软件的各项功能就可以实施,而且由于它的方便快捷,以及它的 可视化程度高,国内外的相关从业人员普遍利用工具软件进行动画的设计和创 作。但是常用的一些动画软件提供的过渡动画技术,只能实现一些几何体的大 小、方位、颜色的过渡变化,较难的人物、动物的动作,如走路、跑步、转面 等就无法计算生成,只能依靠动画软件的逐帧动画技术来实现,这样和传统动 画工作量相同,甚至更大。正是基于上面的考虑,我们才决定对动画编辑器进 行研究与开发。 1 3 课题来源 课题的来源是分布交互三维视景行为一特征建模方法研究:行为特征建 模工具的开发,本课题得到国家自然科学基金和中国科学院计算机研究所智能 信息处理开放研究实验室项目资助。旨在研究一种全新的动漫编辑器,研究出 一种新的中间帧插值算法,专门应用于动漫制作,基于此算法开发一套动漫设 计软件,这套软件能在控制角色运动方面功能强大,自动生成的中间画更接近 实际,这套动漫制作工具改进了传统动漫制作过程,提高制作的效率和精度, 武汉理工大学硕士学位论文 同时把人从繁复的工作中解脱出来。 1 4 国内外研究现状分析 1 4 1 国内外发展历史 用计算机辅助制作动画,目前在国内、国外都已经获得了成功,并且获得 了应用,过去的手工绘制、逐级拍摄,而今已经逐渐电脑化了。从国内计算机 动画的发展过程来看,上个世纪中国第一部动画“大闹画室的诞生到今天已 经有8 0 多年了,在这期间,中国产生了大量优秀的动画作品,如五十年代“大 闹天宫”、“哪吒闹海”,八十年代的“西游记”、“黑猫警长、“葫芦娃、“宝莲 灯”等,这些动画片在二维动画世界电影中均占有自己的一席之地。到了九十 年代,1 9 9 0 年北京第十一届亚运会为我国计算机动画带来了关键性契机。中央 电视台、北京电视台在当时电视转播中首次采用了计算机三维动画技术来制作 电视片头。从此以后,计算机动画技术开始在我国迅速发展。 计算机动画在国外的发展相应的要早的多了,b e l l 实验室的k e n k n o w l t o n 等人早在1 9 6 3 年至1 9 6 7 年期间,就开始着手于用计算机制作动画片。之后一 些美国公司、研究机构和大学也相继开发了自己的动画系统,这些早期的动画 制作系统属于二维辅助动画系统,利用计算机实现中间画面制作和自动上色。 美国o h i o 州立大学的d z e l t e r 等人在7 0 年代开始开发研制三维辅助动画系统, 该系统可以完成如对明暗的着色。从7 0 年代到8 0 年代初开始研制的三维动画 系统,采用的运动控制方式一般是关键参数插值法和运动学算法。8 0 年代后期 发展到动力学算法以及反向运动学和反向动力学算法,还有一些更复杂的运动 控制算法,从而使链接物的动画技术日渐趋于精确和成熟。目前正在把机器人 学和人工智能中的一些最新成就引入计算机动画,提高运动控制的自动化水平。 总的说来,和国际动画的发展水平相比,我国动画产业只是刚刚起步。无 论在动画的应用制作上,还是在理论的研究水平上,都和国外存在相当大的差 距。一方面,国内的动画技术起步较晚。从世界范围看,动画技术自2 0 世纪 6 0 年代产生到今天只有短短4 0 多年的时间,但是发达国家如美国、加拿大、 日本凭借自己的经济和科技优势,无论在动画的制作技术水平上还是在其软硬 件的研发上都处于遥遥领先的地位。2 0 世纪9 0 年代3 d sm a x 才刚刚进入中 4 武汉理工大学硕士学位论文 国,到今天只有短短十多年时间,在技术和设备上落后,还处于模仿阶段,因 此要赶上发达国家还需要一个很长的时间。另一方面也是因为传统动画技术在 我国一直占有非常大的优势,利用计算机技术实现动画的设计和制作对于国内 以手工见长的老一辈动画师来说非常陌生和不适应,尤其在观念上存在着相当 大的差异。第三,由于资金和技术上的问题,我国三维动画还远远未形成规模, 动画制作技术没有自己的核心技术,还处于模仿阶段。以上诸多因素影响甚至 制约着我国动画的发展。但是近年来,有众多三维动画公司和企业在国内如雨 后春笋一样迅速崛起,一些跨国公司也纷纷进入中国,国家相继建立了一批动 画基地和成立了一批国家重点实验室,并且在政策上大力扶持,大量投入资金, 积极支持人才培养,这对我国动画产业尤其是三维动画制作的发展起到了非常 大的推动作用。 1 4 2 计算机动画的研究方式 目前国内外在计算机动画这个课题的研究主要有三种方式: ( 1 ) 纯二维的方式。采用这种方式的工具( 如s o f t i m a g et o o n z ) 一般具 有自由度大、速度快、与传统手绘方式有很好的兼容性的特点。但是它在动画 插值的时候,需要对控制点进行匹配,难以对动作的合理性自动干预,并且难 以识别和处理空间关系。 ( 2 ) 纯三维的方式。在纯三维方式中,目前主要的三维动画制作软件有 m a y a 3 dm a x 。相对来说3 d sm a x 比较易学,操作简单,入门较快,目前 在国内外拥有较大的用户群。但3 d sm a x 公认的不足之处是渲染的质量有待 进一步提高,无论是制作静态图像还是三维动画,建模的质量都显得不够精细, 现在国内3 d sm a x 一般都是应用在制作三维静态效果图,如三维建筑效果图 或者是一些简单的三维动画方面;m a y a 则是一个非常优秀的三维动画制作软 件,并以m e l 功能强大著称,最适用于各种影视制作,像电影特效、广告制作、 游戏动画等,尤其适用于角色动画制作,它是三维动画界中的主流软件。m a y a 的操作界面与流程与3 d sm a x 比较类似,但是上述两种软件的缺陷是建模工 作量大,需要存储大量的数据,并且渲染时间很长,时间和空间的开销都太大, 所以软件制作的成本很高。 ( 3 ) 3 d 骨骼线框填充方式。3 d 骨骼线框填充方式是一种介于二维方式和 三维方式之间的方式,该方式不用对图形本身进行插值,而是用图形的骨架来 武汉理工大学硕士学位论文 实现插值。一个图形的骨架仅由几个点构成的简单图形,动画设计师可以仅画 出一些骨架构成的关键帧,根据动作合理会自动插值,其速度远高于纯三维方 式。但是它的绘画方式与传统的手工绘画方式有很明显的差别,加大了电脑绘 图的难度。 1 5 论文的研究内容 本论文主要实现一个二维动画编辑器,该系统可以完成对基本图元的绘制 和编辑,能够对合成的角色进行动作的设计,达到令人满意的效果。本文主要 分为七章来讨论,各章的主要内容是: 第1 章讲述了课题研究背景和意义、国内外的研究动态和水平以及论文研 究的主要内容。 第2 章介绍了动画系统的相关技术。主要包括:颜色模型、g d i 、交互对 象绘图技术和坐标的转换。 第3 章介绍了二维形体变形技术,先对计算机的动画分类进行了介绍,进 而二维物体变形技术中的两个关键问题进行了剖析。提出了一种快速的变形插 值方法。 第4 章系统的总体设计,介绍系统要实现的基本功能和目标,以及开发工 具的选择。 第5 章介绍了本系统中的动画角色绘制部分的详细设计与实现,包括图元 类、角色类、撤消重做类等结构的设计,以及该系统中一些主要关键技术的实 现方法。 第6 章介绍了本系统中的动作设计编辑与播放部分的详细设计与实现。包 含了变形动画的详细设计和关键帧动画的详细设计。 第7 章对所作的研究工作做了相应的总结,以及对本系统的一些展望。 6 武汉理工大学硕士学位论文 第2 章动画系统的相关技术介绍 动画是将分别创造出来的动作片段进行记录后,以某个恒定的速度进行连 续播放,借助于人类的视觉暂留特性从而使视觉产生的动态效果。在将不同的 片段连续播放的过程中,尽管实际上是间断的,但是人类具有视觉暂留的特性, 给人的感觉还是连续的。另外,无论利用什么样的工具和方式进行动画的创作, 除了依靠人对外界事物捕捉的基本原理之外,还要熟悉运动理论的概念,理解 对象的运动过程,这样才能在计算机中较好地模拟和仿真运动,以求达到最佳 的动画效果。 2 1 颜色模型 所谓颜色模型就是指某个三维颜色空间中的一个可见光子集,它包含某个 颜色域的所有颜色。颜色模型的用途是在某个颜色域内方便地指定颜色,由于 每一个颜色域都是可见光的子集,所以任何一个颜色模型都无法包含所有的可 见光。目前常用的颜色模型主要有:r g b 、c m y 和h s v 三种颜色模型。 r g b 颜色模型通常用于彩色阴极射线管等彩色光栅图形显示设备中,它是 我们使用最多、最熟悉的颜色模型。它采用三维直角坐标系,红、绿、蓝为原 色,各个原色混合在一起可以产生复合色。 c m y 颜色模型以红、绿、蓝的补色青( c y a n ) 、品红( m a g e n t a ) 、黄( y e l l o w ) 为原色构成,常用于从白光中滤去某种颜色,又被称为减性原色系统。了解c m y 颜色模型对于我们认识某些印刷硬拷贝设备的颜色处理很有帮助,因为在印刷 行业中,基本上都是使用这种颜色模型。 r g b 和c m y 颜色模型都是面向硬件的,相比较而言,h s v ( h u e ,s a t u r a t i o n , v a l u e ) 颜色模型是面向用户的,该模型对应于圆柱坐标系的一个圆锥形子集。 h s v 颜色模型对应于画家的配色的方法。画家用改变色浓和色深的方法来从某 种纯色获得不同色调的颜色。其做法是:在一种纯色中加入白色以改变色浓, 加入黑色以改变色深,同时加入不同比例的白色,黑色即可得到不同色调的颜 色【5 1 。由于r g b 颜色模型使用方便,因此本文采用了r g b 颜色模型。 武汉理工大学硕士学位论文 2 2 二维几何变换 ( 1 a x l ,h x 2 ,h x 3 ,h x n ,h ) 其中h 是一个实数。显然一个向量的齐次坐标的表示是 不唯一的,齐次坐标的h 取不同的值都表示的是同一个点,比如齐次坐标 8 ,4 ,2 】、 【4 ,2 ,1 】表示的都是二维点 4 ,2 】。二维齐次坐标变换的矩阵的形式是: 至兰; ,其中( ;耋 可以对图形进行缩放、旋转、对称、错切等变换;( ;) 是对图形进行平移变换;( gh ) 是进行对图形作投影变换。 定位过程【7 1 。如果点p ( x ,y t ) 是由点p ( x ,y ) 在x 轴和y 轴分别移动t x & 距离得到 x :州x ( 2 - 1 ) y 7 = y + t y 霉: = ( 圣 兰 ; i = ;三乏 c 2 - 2 , 8 武汉理工大学硕士学位论文 缩放变换改变物体的大小。设点p ( x ,y ) 经缩放变换后得到点p ( x ,y - ) ,这两 点坐标间的关系为: 其中s x ,s y 分别为沿x 和y 轴方向放大或缩小的比例( 它们可以相等也可以不等) 。 该方程的矩阵形式为: : = 耄丢莩 i = 】j ; c 2 4 , 设图形上一点p ( x ,y ) 绕原点逆时针旋转。角后成为新图形上一点p ( x i ,y ) 则 x=xcos口一ysm护(2-5、 2 3 二维图形编程技术 2 3 1 图形设备接口( g d i ) - s i n 0 c o s 口 0 传统的m s d o s 程序在进行图形绘制或输出时,采用的是直接往视频存储 区或打印机端口输送数据的方法,它的不利之处在于需要对每种显示卡或打印 机类型提供相应的驱动程序。与m s d o s 不同,w i n d o w s 提供了一个抽象接口, 称作图形设备接口( g d i ) 。我们的程序通过调用g d i 函数和各种硬件打交道, 从而实现了与具体设备无关的编程。g d i 的工作原理大致如下:首先,w i n d o w s 提供各种显示卡及打印机的驱动程序;其次各种g d i 函数会自动参考被称为设 备环境的数据结构,而w i n d o w s 则自动将设备环境结构映射到相应的物理设 9 、,o2k x y = = f y 62 、一 秒p 磊 啷 少y 一 1 秒p? l | x x ,l、 i l ,一 z y 1 ,。一、, o o 1 矽秒 3 蜀0 c s ,。l = ,-、 x y 1 武汉理工大学硕士学位论文 备,并且提供正确的输入输出指令【8 】。g d i 在处理速度上几乎和直接进行视频 访问一样快,并且它还允许w i n d o w s 的不同应用程序共享显示器。 g d i 包含了可用于绘制点、线、矩形、多边形、椭圆、位图以及文本的功 能函数。为了方便使用,在v i s u a lc + + 中对其进行了封装,形成了g d i 对象类。 它主要包含六个类:c b i t m a p 、c b r u s h 、c p e n 、c p a l e t t e 、c r g n 和c f o n t 。 2 3 2 坐标系统设置和转换函数 坐标系统是通过逻辑坐标与设备坐标之间的关系来定义的。逻辑坐标是指 用户使用c d c 绘制函数绘制图形的坐标,设备坐标是指计算机系统使用输出 设备( 显示器或打印机) 来绘出图形的坐标。设备坐标是用户不能改变的,设 备坐标的原点总是在左上角,用对象距离窗口左上角的以像素为单位的水平距 离和垂直距离来指定对象的位置。当向右移动的时候,横坐标值增加;当向下 移动的时候,纵坐标值增加。逻辑坐标【9 】贝0 是在内存中虚拟的一个坐标系。其 坐标原点在屏幕的左上角。x 轴正方向为向右,y 轴正方向为向上,即通常使 用的笛卡儿坐标系的第四象限。其单位随着映射模式的不同而改变。当逻辑坐 标与设备坐标不一致时,可通过坐标转换函数来实现。 1 ) 映射模式 映射模式用于定义逻辑坐标的单位与设备坐标之间的关系。在默认的映射 模式下,逻辑坐标与设备坐标相同,坐标原点也在窗口的左上角,以像素为单 位,横坐标随光标向右移动而增加,纵坐标随光标向下移动而增加。但是,如 果窗口支持滚动,原点将随滚动而调整。 w i n d o w s 包含8 种不同的映射模式:m mh i e n g l i s h 、m mh i m e t r i c 、 m m l o e n g l i s h 、m m l o m e t r i c 、m m t w i p s 、m m t e x t 、 m ma n i s o t r o p i c 和m mi s o t r o p i c ,其中m mt e x t 是默认的映射模式。 2 ) 坐标转换 对于各种映射方式下逻辑坐标到设备坐标的转换,c d c 类提供了两个成员 函数完成这个功能,即:d p t o l p 和l p t o d p 。 2 3 3 设备上下文( d c ) w i n d o w s 不允许直接操作显示输出设备,而是通过一个抽象层与设备上下 1 0 武汉理工大学硕士学位论文 文来进行通信。设备上下文也称为设备描述表,是g d i 中的重要组成部分。设 备上下文是一种数据结构,它定义了一系列图形对象以及图形对象的属性和图 形输出的图形模式。图形对象包括画线的画笔、用于填充图形的画刷、位图和 设色板等。 在进行绘图之前,必须首先获取绘图窗口区域的一个设备环境d c 。然后 通过对g d i 函数的调用,完成各种绘图功能。在获取d c 时,我们不必关心设 备环境的大多数属性,因为w i n d o w s 初始化了一套完整的属性和对象集合,我 们可以使用它们进行渲染显示。当然,我们也可以为自己的应用程序创建某种 特定显示方式,还可以更改这些属性和对象。 设备上下文表示物理设备的逻辑形式,w i n d o w s 和m f c 类库提供了4 种 类型的设备上下文:显示设备上下文、打印设备上下文、内存设备上下文和信 息设备上下文。设备上下文不能被应用程序直接存取,只能通过调用有关函数 或使用设备上下文的句柄来间接地存取设备上下文及其属性。m f c 类库提供了 不同类型的设备上下文的类,每一个类都封装了代表w i n d o w s 设备上下文的句 柄和函数。 2 4 交互绘图技术及面向对象技术 2 4 1 面向对象 面向对象程序设计是一种基于结构分析的、以数据为中心的程序设计方法。 在面向对象的程序中,活动的基本单位是对象,向对象发送消息可以激活对象 的行为,所以也有人把面向对象程序描述为:对象+ 消息传递【l0 1 。 一个对象是对一个客观实体的属性( 数据) 和行为( 方法) 的封装体。从 程序设计语言学的角度,它们是抽象数据类型的实现。用户定义的类一旦建立, 就可看成是完全封装的实体,可以作为一个整体单元使用。类的实际内部工作 应当隐藏起来,用户不需要知道类是如何工作的,只要知道使用它就可以了。 面向对象程序设计中的继承机制,可以支持软件的重用。继承性在己有类 和派生类之间建立一种依赖关系,无需对已有类进行修改,或只需添加一些成 员,便可以得到新的类。这样把已有的模块作为软件可重用资源,可以大大提 高软件的生产效率和可靠性。 武汉理工大学硕士学位论文 同时面向对象技术还支持多态性,多态是指不同事物具有不同表现形式的 能力。多态机制使具有不同内部机构的对象可以共享相同的外部接口,通过这 种方式减少代码的复杂度。继承性和多态性的组合,可以轻易生成一系列虽类 似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。但由于多 态性,一个对象可以有独特的表现方式,而对另一个对象有另一种表现方式。 2 4 2 交互绘图技术 1 ) 橡皮筋技术 橡皮筋技术是交互式绘图中广泛使用的一种用户界面接口手段,橡皮筋技 术就是将橡皮筋一端固定于某点,手持其另一端点随意移动,则橡皮筋将随着 手的移动而不断变换形态,这种形态的变化能够很清晰的表达出手移动的过程 细节。因此,橡皮筋技术可用于交互式绘图以表现用户操作的过程细节。交互 式绘图需要控制某种图形随着用户的操作( 如鼠标移动) 不断变换形态,这需 要解决两个方面的问题:擦除旧的图形形态,显示新的图形形态。要实现橡皮 筋技术,最关键的问题是如何将旧的图形擦除,显示新的图形形态则较为简单。 目前,实现橡皮筋技术主要有两种方法:基于异或操作的橡皮筋技术和基于缓 冲区的橡皮筋技术。 ( 1 ) 基于异或操作的橡皮筋技术 基于异或操作的橡皮筋技术利用了异或逻辑操作的重要性质:值a 与值b 再次异或,其值仍然是a 。将这个性质应用到像素的颜色上,则可以利用两次 异或操作恢复本来的像素颜色。即将图形显示方式设置为异或模式,画出图形 ( 此时图形是可见的) ,在异或模式下,将相同的图形再画一遍,这个图形将 会从屏幕上消失,而原来被它覆盖的部分将恢复如初。 ( 2 ) 基于缓冲区的橡皮筋技术 在基于缓冲区的橡皮筋技术中有两个缓存,一个称为前缓冲,另一个称为 后缓冲。向前缓冲中绘制图形,将会在屏幕上看到具体的绘制过程,向后缓冲 中绘制图形,屏幕上看不见具体的绘制过程,在适当的时刻,将后缓冲中内容 复制到前缓冲,则后缓冲中绘制的图形将会快速的显示到屏幕上。有下面两种 方法来实现这种技术: 在进行交互式绘图之前,将场景内容放入后缓存;在进行交互式绘图过 程中,每次需要更新画面时,首先将后缓存内容显示到屏幕上,然后将需要显 武汉理工大学硕士学位论文 示的交互式图形绘制到屏幕上。 在进行交互式绘图过程中,将每次需要显示的整个场景一并绘制到后缓 存中,然后将后缓存中的内容复制到前缓存( 快速显示到屏幕上) 。 由于将缓存中的内容显示到屏幕上速度非常快,因此用这种技术实现交互 式绘图效果并不比异或模式绘图方式差。 2 ) 图元拾取技术 在图形系统中,同一时刻屏幕上存在着多种对象,如折线、圆、曲线等。 这些图形元素最初创建的形态不一定能满足要求,有时需要对这些图形元素的 形态做进一步的调整。比如移动折线中的某个关键点,使折线的形态达到令人 满意的效果;但是这种编辑动作需要在选中某个图形元素后才能进行,因此, 图形元素的选择( 拾取) 就成为一个不可缺少基本操作。根据不同编辑操作的 需要,将选择操作分为两种类型:静态选择和动态选择。静态选择是指只有在 某个图形元素之上单击了鼠标左键之后,这个点才被认为是选中了;动态选择 是在鼠标移动过程中实现的,当鼠标移动到某个图形元素之上时,这个图形元 素就被选中( 类似于网页中动态链接) ,在动态选择中,按下鼠标左键不再表 示选择操作,而是表示编辑动作的开始。本文采用了静态选择功能。 2 5 标准模板库( s t l ) s t l e i l 】( s t a n d a r dt e m p l a t el i b r a r y ) ,即标准模板库,是一个具有工业强度 的,高效的c + + 程序库,它被容纳于c + + 标准程序库( c + + s t a n d a r dl i b r a r y ) 中,是a n s i i s oc + + 标准中最新的也是极具革命性的一部分。为广大c + + 程 序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。 s t l 是最新的c + + 标准函数库中的一个子集,这个庞大的子集占据了整个 库的大约8 0 的分量。而作为在实现s t l 过程中扮演关键角色的模板则充斥了 几乎整个c + + 标准函数库。s t l 和c + + 标准函数库的关系如图2 1 所示。从图 中可以看到c + + 标准函数库大致包含:c 标准函数库、语言支持、诊断、通用 工具、国际化、输入输出、数值、诊断和s t l 。其中c 标准函数库基本保持了 与原有c 语言程序库的良好兼容性;语言支持部分,包含了一些标准类型的定 义以及其他特性的定义,这些内容被用于标准库的其他地方或是具体的应用程 序中:诊断部分,提供了用于程序诊断和报错的功能,包含了异常处理,断言 武汉理工大学硕士学位论文 和错误代码三种方式:通用工具部分为c + + 标准库的其他部分提供支持,当然 也可以在自己的程序中调用相应功能;输入输出部分就是经过模板化了的原有 标准库中的i o s t r e a m 部分,它提供了对c + + 程序输入输出的基本支持;而s t l 主要包含了容器、算法、迭代器三个部分: 容器部分,s t l 的一个重要组成部分,涵盖了许多数据结构,比如l i s t ( 链 表) 、v e c t o r ( 类似于大小可动态增加的数组) 、q u e u e ( 队列) 、s t a c k ( 堆栈) 等。 s t r i n g 也可以看作是一个容器,适用于容器的方法同样也适用于s t r i n g 。 图2 1s t l 和c + + 标准函数库 算法部分,s t l 的一个重要组成部分,包含了大约7 0 个通用算法,用于操 控各种容器,同时也可以操控内建数组。比如:f i n d 用于在容器中查找等于某 个特定值的元素,f o re a c h 用于将某个函数应用到容器中的各个元素上,s o r t 用于对容器中的元素排序。所有这些操作都是在保证执行效率的前提下进行的, 所以,如果在使用了这些算法之后程序变得效率底下,首先一定不要怀疑这些 算法本身,仔细检查一下程序的其他地方。 迭代器( i t e r a t o r s ) 部分,s t l 的一个重要组成部分,如果没有迭代器的撮 合,容器和算法便无法结合的如此完美。事实上,每个容器都有自己的迭代器, 只有容器自己才知道如何访问自己的元素。它有点像指针,算法通过迭代器来 定位和操控容器中的元素。 1 4 武汉理工大学硕士学位论文 第3 章二维形体变形技术 根据应用领域的不同,计算机动画可分为:- - 维动画和二维动画。三维动画 的研究对象为三维空间中的形体,二维动画其研究对象为平面图像或者二维形 体。按其实现的技术来分,计算机动画大致可分为:关键帧动画、变形物体动画、 过程动画几个方面。 3 1 计算机动画分类 3 1 1 关键帧动画 关键帧的概

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论