B.3 绘图示例
假设要绘制隐藏的米奇——表示米老鼠的图标(参见 https://en.wikipedia.org/wiki/Hidden_Mickey),可将前面绘制的椭圆作为脸,再加上两只耳朵。为提高代码的可读性,我们用 Rectangle 对象来表示定界框。
下面的方法接受一个 Rectangle 对象并调用 fillOval:
public void boxOval(Graphics g, Rectangle bb) {g.fillOval(bb.x, bb.y, bb.width, bb.height);}
下面的方法绘制米老鼠:
public void mickey(Graphics g, Rectangle bb) {boxOval(g, bb);int dx = bb.width / 2;int dy = bb.height / 2;Rectangle half = new Rectangle(bb.x, bb.y, dx, dy);half.translate(-dx / 2, -dy / 2);boxOval(g, half);half.translate(dx * 2, 0);boxOval(g, half);}
第 1 行绘制脸;接下来的 3 行创建一个较小的矩形。然后,我们将这个矩形向左上方平移,用作左耳的定界框,再将它向右平移,用作右耳的定界框。结果如图 B-3 所示。

图 B-3:用 Java 图形绘制的隐藏的米奇
有关 Rectangle 和 translate 的更多详细信息,请参阅第 10 章。更多的绘图示例请参阅本附录末尾的练习。
