奥运五环旗由五个不同颜色的圆组成,我们可以通过循环依次输出五个圆环。控制台不方便输出图形,这里以Applet形式输出。这样我们就可以写出程序框架了,代码如下:
public class fiveCircle extends Applet //简单实用为主
{
//paint()方法是由浏览器调用的。每当Applet需要刷新的时候都会调用该方法
public void paint(Graphics g)
{
for(int i=0;i<5;i )
{
//设置当前圆的颜色
//根据圆心坐标画出当前圆
}
}
}
圆环的坐标分析分析出圆的圆心坐标是画图的关键,
坐标分析
上面三个圆的圆心a、b、c的y坐标相同,下面两个圆的圆心d、e的y坐标相同,ab=bc=ad=de,为保证两个圆相交,两个圆的圆心距离必须小于2r(r代表圆的半径)。f为ab的中点,adf组成直角三角形,af=ad/2,只要给定五个圆的任何一个圆心坐标,就可以推倒出其他几个圆的圆心坐标。我们这里使用数组来存放每个圆环的颜色、坐标。
画五环旗根据上面给出的圆的圆心坐标,通过循环语句控制,依次画出每个圆环
完整程序import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
public class fiveCircle extends Applet
{
private Color clr[]={Color.blue,Color.black,Color.red,Color.yellow,
Color.green}; //clr[]存储颜色
private int[] x={100,136,172,118,154}; //x[]存储圆心的x坐标
private int[] y={60,60,60,91,91}; //y[]存储圆心的y坐标
private int[][] xy={{100,60},{136,60},{172,60},{118,91},{154,91}}; //存储圆心的坐标
private int r=20,d=40;
public void paint(Graphics g) //画图方法
{
Font font = new Font("楷体",Font.PLAIN,20); //文字字体、大小
g.setFont(font);
for(int i=0;i<5;i ) //循环5次,画5个圆环
{
g.setColor(clr[i]);
g.drawOval(x[i], y[i], d, d); //d代表椭圆外切矩形的长宽,相等代表圆
}
g.setColor(Color.blue); //设置颜色
g.setFont(font);
g.drawString("奥运五环旗",120,169);
}
}
运行结果再编写一个测试fiveCircle.html文件,把fiveCircle.java文件编译后的fiveCircle.class文件放到fiveCircle.html文件同一目录下,直接用浏览器打开fiveCircle.html,运行程序
今日小知识:调试Java apple 小程序时,有时会因为浏览器阻止导致运行失败,我们可以先试试在命令行运行appletviewer命令