⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 introductiontoanimation.htm

📁 电脑图学(Computer Graphics)是资料结构、演算法与数学的应用
💻 HTM
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>







  
  
  
  
  
  
  
  <link rel="stylesheet" href="css/stdlayout.css" type="text/css">







  
  
  
  
  
  
  
  <link rel="stylesheet" href="css/print.css" type="text/css">







  
  
  
  
  
  
  
  <meta content="text/html; charset=gb2312" http-equiv="content-type">







  
  
  
  
  
  
  
  <title>动画简介</title>
</head>


<body>







<h3><a href="http://caterpillar.onlyfun.net/GossipCN/index.html">From
Gossip@caterpillar</a></h3>







<h1><a href="ComputerGraphics.htm">Computer Graphics:&nbsp;动画简介</a></h1>







动画播放的原理,是快速播放每一张连续分解动作的画面,由于每一张图片的差异小,加上利用人类的视觉暂留,使得看起来动作想是连续,电影或卡通的播放原理就是如此,例如将下图的四个影格(Frame)连续播放,看起来就会像是挖土机由远而近的开过来。 <br>
<img style="width: 596px; height: 112px;" alt="" src="images/introductionToAnimation-1.jpg"><br>







<br>







<h2>&nbsp;动画播放速度</h2>
动画播放速度是由每秒钟影格数来决定,又称FPS(Frame per second),FPS越高,影片连续动作的细致度越高,但所使用的图片数就越多,通常10到12FPS就可以产生差强人意动画的效果,一般的话会设定为 24FPS以达到较流畅的播放效果。<br>
<br>
FPS的倒数是SPF(Second per frame),也就是每个影格的播放时间,对于程式设计来说,SPF就影响了动画回圈每次必须暂停的时间,例如要播放24FPS的动画,我们在播放完一个影格之后,就必须暂停动画回圈1/24秒,也就是46毫秒。<br>
<h2>动画回圈</h2>
在程式设计中,是使用一个不断执行的回圈来进行动画绘制,一个典型的动画回圈如下所示:<br>
<div style="margin-left: 40px;"><span style="font-weight: bold; font-family: Courier New,Courier,monospace;">&nbsp;while(true) { </span><br style="font-weight: bold; font-family: Courier New,Courier,monospace;">
<span style="font-weight: bold; font-family: Courier New,Courier,monospace;">&nbsp;&nbsp;&nbsp; 绘制影像 </span><br style="font-weight: bold; font-family: Courier New,Courier,monospace;">
<span style="font-weight: bold; font-family: Courier New,Courier,monospace;">&nbsp;&nbsp;&nbsp; 暂停指定秒数 </span><br style="font-weight: bold; font-family: Courier New,Courier,monospace;">
<span style="font-weight: bold; font-family: Courier New,Courier,monospace;">&nbsp;&nbsp;&nbsp; 改变动画状态 </span><br style="font-weight: bold; font-family: Courier New,Courier,monospace;">
<span style="font-weight: bold; font-family: Courier New,Courier,monospace;">&nbsp;} </span><br>
</div>
<br>
其中改变动画状态视不同的程式而有所不同,也许只是单纯的载入下一张影像,也许是由于使用者的操作而改变状态。<br>
<br>
暂停指定秒数部份,不同的程式语言工具会有不同的处理方式,不过多不离“执行绪”(Thread)或Timer的使用,在这个主题的介绍中都是使用Java实作,所以会使用执行绪的观念来制作动画。<br>
<br>
执行绪的使用是在需要同时处理两件事时才会使用,例如同时处理事件与动画播放时,会将动画播放交由执行绪来处理,而事件处理又是另一个执行绪。<br>
<h2>动画分类</h2>
这边简单的将动画分为两类,一种是所谓“画框动画”,每次绘制时都载入一张画框大小的图片,电影或卡通制作都是属于此类,这种动画的好处是只要绘制好每一张图片,然后再依序播放即可,但缺点是缺乏弹性,只适用于一些固定播放的画面,例如背景画面。<br>
<br>
另一种是“角色动画”,在绘制动画时,只改变画框中局部区域的绘制,例如数位小时钟的绘制时,我们可以只改变秒钟部份的动画,只有在需要进位一分钟时,才
改变分钟部份的动画;这种动画播放方式的弹性很大,可以制作随机的地图或人物移动等动画,不过就是在程式计时,要花多一些心思在逻辑设计上。<br>
<br>
即使在不使用执行绪时,也可以由流程控制来制作动画,例如在Turbo C的绘图模式时,我们可以使用sleep()函式来处理程式的暂停,而使用者的操作处理则直接撰写在动画回圈当中。<br>








<br>
<br>







</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -