java小程序-画一幅海底世界的图

老师让我们画一幅鱼在水中游动的图,完成了之后我又添加了一点天空啊山峰啊太阳啊小船啊,感觉挺有意思的。本来还想画云和鸟的,时间关系就没画了。

代码其实也就是画些圆和矩形不断的在那儿鼓捣,也就没添加注释了。

下面是截图:




下面是代码:

首先是框架的代码:

package day05;

import javax.swing.JFrame;

public class FishFrame {
	public static void main(String[] args) {
		JFrame frame=new JFrame();
		frame.setSize(1000,800);
		frame.setTitle("海底世界");
		frame.setLocation(0,0);
		FishPanel panel =new FishPanel();
		frame.add(panel);
		panel.startRun();
		frame.setVisible(true);
	}

}

接着是面板的代码:

package day05;

import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;

import javax.swing.JPanel;

public class FishPanel extends JPanel{
	//鱼的坐标
	int []x_fish={0,100,230,260,290,370,600,700,750,870};
	int []y_fish={0,10,50,120,0,-50,-30,20,-40,-60};
	//波浪的坐标
	int []x_wave=new int[50];
	int []y_wave=new int[50];
	//气泡的坐标
	int []x_air=new int[40];
	int []y_air=new int[40];
	int a=200;
	Random ran=new Random();
	
	public FishPanel(){
		for(int i=0;i<50;i++){
			x_wave[i]=ran.nextInt(1000);
			y_wave[i]=ran.nextInt(800);
		}
		for(int i=0;i<20;i++){
			x_air[i]=ran.nextInt(1000);
			y_air[i]=ran.nextInt(800);
		}
	}

	public void paint(Graphics g){
		super.paint(g);
		
		this.setBackground(new Color(22,240,240));
		
		paintFish(g);//画鱼
		paintGrass(g);//画草
		paintWave(g);//画波浪
		paintAir(g);//画气泡
		
		
		
		g.setColor(Color.white);
		g.fillRect(0, 0, 1000, 300);
		//画山峰
		g.setColor(new Color(99,85,66));
		g.fillArc(800, 100, 400, 400, 90, 90);
		g.setColor(Color.yellow);
		g.fillArc(20, 20, 100, 100, 0, 360);
		paintShip(g);//画船
		
	}
	
	public void startRun(){
		new Thread(){
			public void run(){
				while(true){
					for(int i=0;i<10;i++){
						x_fish[i]++;	
						if(x_fish[i]>1000){x_fish[i]=-100;}	
					}
					for(int i=0;i<40;i++){
						x_air[i]++;
						y_air[i]-=1;
						if(x_air[i]>1000){x_air[i]=-100;}
						if(y_air[i]<-100){y_air[i]=800;}
					}
					for(int i=0;i<50;i++){
						x_wave[i]--;
						if(x_wave[i]<0){x_wave[i]=1000;}
					}
					a+=2;
					if(a>1100){a=-100;}
					
					try {
						sleep(10);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					repaint();
				}
			}
		}.start();
	}
	public void paintFish(Graphics g){
		for(int i=0;i<10;i++){
			g.setColor(Color.yellow);
			g.fillArc(x_fish[i]-25,y_fish[i]+ 500, 100, 50, -90, 180 );
			g.setColor(new Color(22,240,240));
			g.fillArc(x_fish[i]-10, y_fish[i]+500, 50, 50, 0, 360);
			g.setColor(Color.yellow);
			g.fillArc(x_fish[i]+15, y_fish[i]+500, 100, 50, 155, 45);
			g.setColor(Color.black);
			g.fillArc(x_fish[i]+50, y_fish[i]+515, 10, 10, 0, 360);
			g.setColor(Color.white);
			g.fillArc(x_fish[i]+53, y_fish[i]+516, 5, 5, 0, 360);
		}
	}
	
	public void paintGrass(Graphics g){
		g.setColor(new Color(35,204,52));
		g.fillArc(0, 600, 200, 200, 0, 360);
		g.fillArc(100, 700, 200, 200, 0, 360);
		g.fillArc(190, 580, 200, 300, 0, 360);
		g.setColor(new Color(22,240,240));
		g.fillArc(-20, 600, 200, 200, 0, 360);
		g.fillArc(210, 600, 200, 200, 0, 360);
		
	}
	
	public void paintWave(Graphics g){
		g.setColor(Color.white);
		for(int i=0;i<50;i++){
		g.drawString("~~~~~~~~~~~~~~~~", x_wave[i], y_wave[i]);
		}
	}
	
	public void paintAir(Graphics g){
		g.setColor(Color.white);
		for(int i=0;i<40;i++){
			g.drawArc(x_air[i], y_air[i], 40, 40, 0, 360);
			g.fillArc(x_air[i]+10, y_air[i]+10, 5, 5, 0, 360);
			g.drawArc(x_air[i]-20, y_air[i]+50, 30, 30, 0, 360);
			g.fillArc(x_air[i]-10, y_air[i]+60, 5, 5, 0, 360);
			g.drawArc(x_air[i]-20, y_air[i]+100, 10, 10, 0, 360);
			g.fillArc(x_air[i]+10, y_air[i]+10, 5, 5, 0, 360);
		}
	}
	public void paintShip(Graphics g){
		
		g.setColor(Color.red);
		g.fillRect(a, 200, 10, 50);
		g.fillRect(a, 250, 100, 50);
		g.fillArc(a-50, 200, 100,100, 180, 90);
		g.fillArc(a+50, 200, 100,100, -90, 90);
		
	}
}


  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,让我来为您展示一下用turtle一幅海底世界的代码: ```python import turtle # 设置笔和布 pen = turtle.Turtle() pen.speed(0) pen.color('white') pen.getscreen().bgcolor('blue') # 海底 pen.penup() pen.goto(-300, -200) pen.pendown() pen.begin_fill() pen.goto(300, -200) pen.goto(300, 0) pen.goto(-300, 0) pen.goto(-300, -200) pen.end_fill() # 海底草 pen.penup() pen.goto(-250, -190) pen.pendown() pen.color('green') pen.begin_fill() for i in range(2): pen.forward(50) pen.right(90) pen.forward(100) pen.right(90) pen.end_fill() pen.penup() pen.goto(-150, -190) pen.pendown() pen.color('green') pen.begin_fill() for i in range(2): pen.forward(70) pen.right(90) pen.forward(120) pen.right(90) pen.end_fill() pen.penup() pen.goto(50, -190) pen.pendown() pen.color('green') pen.begin_fill() for i in range(2): pen.forward(60) pen.right(90) pen.forward(90) pen.right(90) pen.end_fill() # 海底动物 pen.penup() pen.goto(-200, -50) pen.pendown() pen.color('black') pen.fillcolor('orange') pen.begin_fill() pen.circle(50) pen.end_fill() pen.penup() pen.goto(100, -50) pen.pendown() pen.color('black') pen.fillcolor('yellow') pen.begin_fill() pen.circle(50) pen.end_fill() # 海星 pen.penup() pen.goto(-100, -100) pen.pendown() pen.color('black') pen.fillcolor('purple') pen.begin_fill() for i in range(5): pen.forward(50) pen.right(144) pen.end_fill() # 完成 turtle.done() ``` 运行代码后,您就可以看到一幅色彩缤纷的海底世界啦!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值