图形之动画,,


  动画

  利用计算机图形做动画时,移动一个东西要完成两个步骤。

  (1) 在新的位置上画出图形

  (2) 把原来的图形擦掉

  我们已经看到了第一部分,在新的位置画出了球,现在必须将原先位置的球擦掉,不过“擦掉”到底是什么意思?

  擦掉图像

  如果在纸上或黑板上画画,可以很容易地擦掉,只需要一块橡皮或一个黑板擦,对吗?不对,如果画的是一幅水彩画呢?假设你在画一幅蓝天的水彩画,然后在蓝天画上一只鸟,你怎么把这只鸟“擦掉”呢?水彩是擦不掉的,你必须在鸟所在的位置上用水彩画上新的蓝天。

  计算机图形就像水彩画,而不像铅笔画或粉笔画,要“擦掉”某个东西,你实际要做的是把它“盖住”,但是用什么来盖住呢?对于蓝天水彩画,天是蓝的,所以要用蓝色来覆盖小鸟。我们的背景是白色的,所以必须用白色覆盖沙滩球原来的图像。

  让我们来试试看,按照代码清单16-13修改代码清单16-12中的程序,这里只需要增加一行新代码。

  与孩子一起学编程-python教程

  我们增加了第10行,在第一个沙滩球 上画了一个白色矩形,沙滩球图形大约90像素宽90像素高,所以白色矩形的大小就是90像素宽90像素高,如果运行代码清单16-13中的程序,看起来沙滩球 会从它原来的位置移动到新位置。

  底下有什么

  用我们的白色背景(或水彩画中的蓝天)覆盖是很容易的,不过如果在一个有云的天空里画了一个鸟,又怎么办呢?或者如果背景上有树呢?这种情况下,就必须用云或树覆盖鸟来把它擦掉,这里的重点是:你必须知道背景上有什么,也就是在你的图像“底下”是什么,因为移动图像时,必须放回或者重绘这个位置上原来的背景。

  对于我们的沙滩球例子来说,这相当容易,因为背景只有白色。不过如果背景是一个沙滩场景,就会困难得多,不只是涂上白色,我们必须画出正确的背景图像部分,还有一个选择是重绘整个场景,然后把沙滩球放在它的新位置上。

评论关闭