java模拟运动_Java编程实现的模拟行星运动示例

本文介绍了使用Java编程实现模拟行星运动的示例,包括类的设计和实现。通过创建Star类作为行星基类,Stars类表示运动行星,实现了行星围绕中心行星的椭圆轨道运动。程序包含Start、Pause、accelerate和decelerate等功能,允许控制行星的运动状态。文章详细阐述了各个类的结构和交互,展示了面向对象编程的应用。
摘要由CSDN通过智能技术生成

本文实例讲述了Java编程实现的模拟行星运动。分享给大家供大家参考,具体如下:

期待了很久的Java语言程序设计也拉下了帷幕,在几个月的时间里基本掌握了java的简单用法,学习了java的主要基础知识,面向对象思想,多线程并发控制,swing界面设计,动画制作等,最后结课了也打算制作一个课程设计能够尽可能多的涵盖所学知识,将其进行串联,因此考虑实现了一个简单的模拟行星运动的小软件,主要思路如下:

利用动画实现行星运动的模拟,主面板里有一个中心行星,同时绘制了椭圆轨道,有一颗运动的行星围绕着中心行星运动。同时右下角设置的有四个按钮,即“Start”、“Pause”、“accelerate”和“decelerate”分别可以使行星运动、暂停、加速、减速。

一、类的设计:

Star继承自JPanel。Star类是行星的基类,所有运动的行星都是继承自Star类。内部draw()方法主要绘制了一个实心圆形,目的是在每次绘制时,可以保证中心行星始终显示。paintComponent()方法重写了JPanel的绘制方法,目的是保证继承自Star类的Stars类的实例对象可以绘制出自己的行星。如下:

package Star;

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JPanel;

public class Star extends JPanel{

/**

* 基本的行星类

*/

private static final long serialVersionUID = 1L;

int x,y;

int width,height;

public Star() {

width = 10;

height = 10;

}

public Star(int x, int y){

this.x = x;

this.y = y;

width = 10;

height = 10;

}

public void draw(Graphics g){

g.setColor(Color.blue);

g.fillOval(x, y, width, height);

}

protected void paintComponent(Graphics g){

super.paintComponent(g);

g.fillOval(x, y, width, height);

}

}

Stars类继承自Star类,是对Star类的进一步细化,表示运动的行星。Stars类中的alfa表示运动行星的运动起始角度,speed表示运动速度,可对其进行修改。Long,Short分别表示椭圆轨迹的长轴与短轴。center表示其实例化对象的中心行星。paintComponent()函数重写了paintComponent(),内部引用了父类的draw()函数,并且根据Long,,Short绘制了椭圆轨道,Long、Short由实例化对象调用构造方法来决定。move()函数描述了x,y的变化方程,即围绕着椭圆轨道变化,同时规定了alfa的变化方式。start()函数表示线程开始,pause()函数表示线程暂停,accelerate()函数表示对行星的加速操作,decelerate()函数表示对行星减速的操作。

Pthread类目的是控制线程,即通过对Pthread类的实例化可以控制行星的开始运动,暂停运动,加速,减速。Pthread类继承自Thread类,且包含于Starts类中ÿ

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值