B.5 练习
本附录的示例代码位于仓库 ThinkJavaCode 的目录 ap02 中,有关如何下载这个仓库,请参阅前言中的“使用示例代码”一节。建议你先编译并运行这些示例,再动手做下面的练习。
练习B-1
绘制一面日本国旗:宽度比高度长的白色背景上有一个红色圆。
练习B-2
修改 Mickey.java,在每个耳朵上反复绘制两个耳朵,直到最小的耳朵的宽度只有 3 像素为止。
结果应类似于图 B-4 所示的米老鼠。提示:只需添加或修改几行代码就可以。

图 B-4:我们称之为“米老鼠”的递归形状
练习B-3
在这个练习中,你将绘制像在移动的摩尔纹,其中的相关原理请参阅 https://en.wikipedia.org/wiki/Moire_pattern。
(1) 在本书代码仓库的目录 app02 中,有一个名为 Moire.java 的文件。打开这个文件,并阅读其中的方法 paint。用草图描绘你希望它将绘制的图形,再运行它。结果与你预期的相同吗?
(2) 修改这个程序,增大或缩小相邻圆的间距,再看看结果。
(3) 修改这个程序,使其绘制以屏幕中点为圆心的同心圆,如图图 B-5(左)所示。相邻圆的间距必须足够小,这样才能出现摩尔干涉效果。
(4) 编写一个名为 radial 的方法,让它绘制一组如图 B-5(右)所示的辐射线,但要形成摩尔纹,这些线条的间距必须足够小。
(5) 几乎任何图案都能形成摩尔干涉效果。自己研究研究,看看你能创建哪些能够形成摩尔干涉效果的图案。

图 B-5:展示摩尔干涉的图案
