关键词不能为空

当前您在: 主页 > 英语 >

各种动态图像设计方法的比较分析

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-02 12:34
tags:

-

2021年2月2日发(作者:jian)


各种动态图像设计方法的比较分析











:


研究现有的多种动态图像设计方法


,


分析其 优


缺点及适用性。


将各种动态图像设计方法汇总


,


根据采用设计


语言及不同设计方法进行分类


,


详尽阐述各种设计方法的原



,


说明其使用模式。


通过执行速度及程序复杂性等分析 各种


方法的优缺点及适用性。为各种操作系统


(


包括嵌入式系统


)


的开发者进行动态图像设计拓宽了视 野


,


并给出了方法选择


建议。






关键词


:


动态图像


;


高速平滑


;


第三方软件


;


翻页






中图分类号


:TP391

< p>
文献标识码


:A





文章编号


:1004-373X(2 009)12-073-05









Comparative Analysis on Varieties of Methods for


Designing Animated-images





ZHANG Yinan





(Navy Submarine Academy,Qingdao,266071,China)





Abstract:Varieties of current methods for designing


animated images are researched,and their superiorities and


disadvantages are ies of current methods for


designing animated images are enumerated,which are


categorized basing on different designing languages and


means,principles and superiorities and


disadvantages of varieties of methods by comparing performing


velocities and program complexities are exploits


visual field and provides suggestions of method-choices for


kinds of OSs(including embedded systems) developer.





Keywords:animated-images;high-speed


smoothness;third-party software;flip









0









动态图 像技术是计算机图形学中的重要内容


,


它广泛用


于游戏娱乐、辅助教学、科学实验模拟等计算机辅助设计。


在程序设计中


,


动态图像的设计是程序员经常遇到的问题


,



设计语言和方法多种多样。根据是否需要借助于其他应用软< /p>


件和程序


,


可以将这些方法分成两大类。


第一类是只使用各种


编程语言及开发环境中包含的文件和框架实 现的设计方法


;


第二类是安装相关软件


(


诸如


Flash,DirectDraw


),


在相关语


言的开发环境中将 这些软件的功能文件包含进去


,


共同实现


动态图像设计的方法。






然而


,


有关 动态图像的设计


,


现有的教程资料中大都“各

< br>顾眼前人”


,


其方法分散


(


见于各种开发语言的编程指南中


),


很少将 各种动态图像的设计方法汇总成资料。本文正是做了


这方面工作


,


希望帮助动态图像设计的开发人员对动态图像


设计有一个清晰 、宏观的认识


,


拓宽视野


,

< p>
在选取设计方法时


,


能够辨明利弊


,


灵活使用。这样


,


使用者也 可以看到更加赏心


悦目的界面。






1


动态图像设计的原理






程序设计中动态图像设计的原理类 似于电影中普通的


动画原理


,


都是利用 人的视觉具有“暂留”的生理特点


(


即人


眼对动态图像的变化仅能分辨出时间间隔为


25 ms


左右的 变



,


如果图像变化太快


,


则人眼无法分辨


),


使连 续的静止画面


看上去具有动感。


在程序设计中可以在屏幕上画出 一张图像


,


而这张图像将在不同时间出现


,


然后一张张快速


(


时间间隔小



25 ms)


呈现在屏幕上


,


从视觉效果上看这些画面就如同电


影在连续变化一 样


,


给人以动的视觉感觉。






2


不需安装第三方软件的动态图像设计方法






2.1


最简单的


Logo


程序语言设计方法< /p>






Logo


是一种解释型语言


,


与其他的语言不同


,


它内置了一



Turtle Graphics


系统

,


令程序设计更加形象化


,


也更易 于理



,


使得用户可以通过简单的编程 创作出丰富多彩的视觉效


果或图案。






Logo


程序语言中


,


常用的图像动态效果可以归纳为闪


烁、旋转和移动三种。






2.1.1


使图像闪烁的编程技巧






使图像闪烁的编程技巧如图


1


所示。







1


使图像闪烁的编程技巧






2.1.2


使图像旋转的编程技巧






下面给出画一个金光四射太阳的程 序实例


,


如图


2


所示。







2


画一个金光四射的太阳的过程






画太阳光芒的程序如下


:









TO TYG






SETPC 14





REPEAT 30[PU FD 60 PD FD 20 PU BK 80 PD





RT 360/30]





END





擦除太阳光芒的程序如下


:









TO TYGPE





REPEAT 30[PU FD 60 PE FD 20 PU BK 80 PD





RT 360/30]





END





太阳光旋转的程序如下


:









TO SHINE





DRAW SETPC 12





(STAMPOV


AL 50 50



TRUE)





REPEAT 72[ TYG WAIT 10 TYGPE RT 360/72]





END





2.1.3


使图像移动的编程技巧






使图像移动的编程技巧如图


3


所示。







3


使图像移动的编程技巧






2.2 C


程序设计方法






2.2.1


四种常用方法






使用


C< /p>


语言来设计动态图像的方法有很多


:





(1)


利用动态开辟图视口方法。在位置动态变化


,


但大小

< p>
不变的图视口中


(



se tviewpot()


函数


)


设置固定 图形。这样


,


呈现在观察者面前的是当前图视口位置在动态变化


,


因而在


屏上看到的图像就好像在动态 变化一样。






(2)


利用显示页和编辑页交替变 化。将当前显示页和编


辑页分开


(


用< /p>


setvisualpage()



se tactivepage()


函数


),


在编辑页


上画好图形后


,


立即令该页变 为显示页


;


然后在上次显示页上


进行画 图


,


画好后


,


再交换


;


如此反复


,

< br>观察者的视觉上就出现


了动态变化的效果。






(3)


利用画面存储再重放的方法。像制作幻灯片一样


,



整个动画过程变成一个个片断


,

< br>然后存储到显示缓冲区内。



它们按顺序重放到屏幕上时


,


就出现了动态变化效果。






(4)


直接对图像动态存储器进行操作。利用显示适配器


上控制图像显 示的各种寄存器和图像存储器


VRAM,


对其进


行直接操作和控制


,


从而高效且快速地实现图像动态效 果。






利用上述


4


种方法均可以设计动态图像


,


但其操作比较


复杂

< br>,


且在程序中要对图像不断进行存取操作


,


需要耗费大量


内存资源。利用擦除法动态图像设计可以解决上述问题。






2.2.2


擦除法动态图像设计






擦除法 动态图像设计在很多动画制作工具


(



Flash)



大量使用


,

< p>
但在程序设计中却少有人用。


它的设计原理是利用


同色原理


,


在图形色与背景色相同时人眼不能感知。

< p>
在程序设


计中


,


当一个位 置画了一张图像时


,


使图像色与背景色相异

;



后再到另一个位置画一张图像并使图像色与背景色也相 异。


此时


,


将先前画的图像在原位置再 画一张


,


并使图像色与背景


色相同


,


这样人眼只能看到新画的一张图像而看不到先前画


的图像


,


从而先前画的图像感觉被擦除了。

< p>
这样连续画多张图



,


并 在每画一张新的图像时将原有的图像擦除


,


即可实现观


察者角度的动态效果。









2.3 CBuilder


中进行动态图像设计






动态图 像设计中两个非常重要的方面就是图形的产生


及对时间的控制。


CBuilder 5


为解决这两个问题提供了良好


的方案


:


一方面


,


可以利 用现成的


Shape


组件产生常见的图像


形体


;


另一个方面


,


可以利用


Timer


组件


,< /p>


对动画的时间进行准


确的控制。






读者可以自行查找


CBuilder 5


应用指南中的相关示例应


用程序


,


以 了解其设计方法。






2.4


利用


Java Applet


编程实现图像动态






2.4.1 Java


中实现动态图像的原理







Jav a


中实现动态图像有很多种办法


,


但其 基本原理是


一样的


,


即在屏幕上画出一 系列的帧来造成运动的感觉。


为了


每秒钟多次更新屏幕


,


必须创建一个线程来实现动态图像的


循环


,


这个循环要跟踪当前帧


,


并响应周期性屏幕更新的要


求。






动态图 像设计中最常遇到的问题便是屏幕会出现闪烁


现象。闪烁有两个原因

:


一是绘制每一帧花费的时间太长


(



为重绘时要求的计算量大


);


二是 在每次调用


Pain()



,Java



用背景颜色重画整个画面


,


当进行下一帧计算时


,


用户看到的


是背景。






有两种方法可以明显地减弱闪烁


:< /p>


重载



update()


或使用


双缓冲。






2.4.2

重载


update()


方法减弱闪烁







AWT


接收到一个


applet


的重绘请求时


,


它就调用

applet




update( );


默认地用


update()


清除


applet


的背景


,


然后


调用



paint()< /p>



重载



upd ate(),


将以前在


paint()


中的绘图代码包


含在


update()



,


从而避免每次重绘时将整个区域清除。





使用


update()


方法不会清除整个画面

< br>,


只是消除必要的部


分。






2.4.3


使用双缓冲方法减弱闪烁






双缓冲 方法在许多


Applet


中被使用。


其 主要原理是创建


一个后台图像


,


将需要 绘制的一帧画入图像


,


然后调用


Dra wImage()


将整个图像一次画到屏幕上去


;


其好处是大部分


绘制是离屏的


,

将离屏图像一次绘至屏幕上比直接在屏幕上


绘制要有效得多


,


大大提高了做图的性能。






双缓冲可以使图像动得平滑


,


但有一个缺点是它需要分


配一张后台图像< /p>


,


所以


,


如果图 像相当大


,


就将需要很大的内


存。






2.5 Windows API


实现动态图像的基本方法







Win dows


中实现动态图像的方式有很多种


,

但基本原


理却非常类似。即


:


在初 始位置显示初始图形


,


经过短暂的延


时 后


,


去除掉初始图形


,


并在新的位置显示新的图形


;


这些步骤


加以循环


,


便形成了动态的效果


(


这里应该首先掌握


Windows


调色板及三元光栅操作的基本概念


)







比如< /p>


,


计算机上实现“淡入淡出”技术


,


采用的办法是在


已显示的位图


A

< p>


,


不断开些小洞


,


在小洞内显示位图


B


的像

< br>素


,


随着小洞逐渐增多


,


位图


A


越来越模糊


,


位图


B


越来越清晰

,


最后


,


位图

A


消失


,


位图

B


完整地显示出来。






以下为常用动态图像设计方法


:





接下来结合


C++


程序介绍一些


Windows


下常用的动态


图像设计方法。






(1)


底色覆盖法






底色覆盖法是利用屏幕底色将原始 图形覆盖掉


,


该法实


现的动态图像具有 明显的闪烁效果。






(2)


多图片切换法






这种动态图像实现方法的效果类似 于


Gif


动态图像的效


果。

< p>
其原理是将动态图像的帧事先绘制出来


,


存为位图 文件或


位图资源


,


并按照动态图像的顺 序为这些帧加以编号。


当要显


示动态图像时

,


在指定的位置


,


间隔适当的时间


,


按照顺序显示


已经绘制好的位图帧< /p>


,


从而达到动态图像的目的。






下面是利用这种方式实现的动态图像程序框架


:









// bm[ ]


为多张位图文件的路径及文件名数组


,


按照顺序


储存了多张位图






// picBox



PictureBox


控件的一个实例

< p>





for( i=0; iPicture = bm[i];//


选中位图






::Seep(100); //


延时






if( i == len(hbm) - 1 ) i = -1





}





(3)


异或方式






利用异 或方式实现动态图像的例子比较多


,


比如绘图软


件中的“橡皮筋技术”







“异或”是一种逻辑组合的方式< /p>


(



Windows

编程中


,


-


-


-


-


-


-


-


-



本文更新与2021-02-02 12:34,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/599721.html

各种动态图像设计方法的比较分析的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文