day07

该博客主要用Java语言实现小球运动与碰撞效果。定义了Ball类,包含小球大小、坐标、颜色等属性,实现了小球绘制和移动方法。还定义了BallAndBall类,用于判断小球是否碰撞,并处理碰撞时小球方向的改变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.awt.Color;
import java.awt.Graphics;

/**

  • 小球:
  • 大小,坐标,颜色,速度,方向
  • @author Administrator
    *1.设计类:抽象类 ball; 设计类:------BallMain,BallJPanel,BallAndBall
    *2. 分析:小球的绘制
  • 让小球运动,多个运动,小球进行碰种 ,打的吃小的
    */

public class Ball {
int x,y,d,dir;
int speed;
Color ballColor;
public static final int LEFT_UP=0;//左上
public static final int RIGHT_UP=1;//右上
public static final int LEFT_DOWN=2;//左下
public static final int RIGHT_DOWN=3;//右下
public Ball(int x,int y,int d,int dir,int speed, Color ballColor){
this.x=x;
this.y=y;
this.dir=dir;
this.speed=speed;
this.d=d;
this.ballColor=ballColor;
}
//绘制小球
public void drawBall(Graphics g){
g.setColor(ballColor);
g.fillOval(x, y, d, d);
}
/*
* 小球移动方向的判断
/
public void moveBall(){
switch (this.dir) {
case LEFT_UP: //左上
x-=speed;
y-=speed;
if(x<=0){
dir=RIGHT_UP;
}else if(y<=0){
dir=LEFT_DOWN;
}
break;
case RIGHT_UP://右上
x+=speed;
y-=speed;
if(x>=(1400-d)){
dir=LEFT_UP;
}else if(y<=0){
dir=RIGHT_DOWN;
}
break;
case RIGHT_DOWN://右下
x+=speed;
y+=speed;
if(y>=(800-d)){
dir=RIGHT_UP;
}else if(x>=(1400-d)){
dir=LEFT_DOWN;
}
break;
case LEFT_DOWN://左下
x-=speed;
y+=speed;
if(y>=(800-d)){
dir=LEFT_UP;
}else if(x<=0){
dir=RIGHT_DOWN;
}
break;
default:
break;
}
}
2.
public class BallAndBall {
//是否发生碰撞
public boolean isBallCrach(Ball b1,Ball b2){
boolean flag=false;
int x1=b1.x+b1.d/2;
int y1=b1.y+b1.d/2;
int x2=b2.x+b2.d/2;
int y2=b2.y+b2.d/2;
double e=Math.sqrt((x1-x2)
(x1-x2)+(y1-y2)(y1-y2));//计算圆心距
if(e<=b1.d/2+b2.d/2){
return flag;
}
return flag;
}
public void ballCrach(Ball b1,Ball b2){
int x1=b1.x+b1.d/2;
int y1=b1.y+b1.d/2;
int x2=b2.x+b2.d/2;
int y2=b2.y+b2.d/2;
double e=Math.sqrt((x1-x2)
(x1-x2)+(y1-y2)*(y1-y2));//计算圆心距
if(e<=b1.d/2+b2.d/2){
switch (b1.dir) {
case Ball.LEFT_UP:
b1.dir=Ball.RIGHT_DOWN;
break;
case Ball.RIGHT_UP:
b1.dir=Ball.LEFT_DOWN;
break;
case Ball.LEFT_DOWN:
b1.dir=Ball.RIGHT_UP;
break;
case Ball.RIGHT_DOWN:
b1.dir=Ball.LEFT_UP;
break;
default:
break;
}
}
if(e<=b1.d/2+b2.d/2){
switch (b2.dir) {
case Ball.LEFT_UP:
b2.dir=Ball.RIGHT_DOWN;
break;
case Ball.RIGHT_UP:
b2.dir=Ball.LEFT_DOWN;
break;
case Ball.LEFT_DOWN:
b2.dir=Ball.RIGHT_UP;
break;
case Ball.RIGHT_DOWN:
b2.dir=Ball.LEFT_UP;
break;
default:
break;
}
}
}

内容概要:文章详细介绍了ETL工程师这一职业,解释了ETL(Extract-Transform-Load)的概念及其在数据处理中的重要性。ETL工程师负责将分散、不统一的数据整合为有价值的信息,支持企业的决策分析。日常工作包括数据整合、存储管理、挖掘设计支持多维分析展现。文中强调了ETL工程师所需的核心技能,如数据库知识、ETL工具使用、编程能力、业务理解能力问题解决能力。此外,还盘点了常见的ETL工具,包括开源工具如Kettle、XXL-JOB、Oozie、Azkaban海豚调度,以及企业级工具如TASKCTLMoia Comtrol。最后,文章探讨了ETL工程师的职业发展路径,从初级到高级的技术晋升,以及向大数据工程师或数据产品经理的横向发展,并提供了学习资源求职技巧。 适合人群:对数据处理感兴趣,尤其是希望从事数据工程领域的人士,如数据分析师、数据科学家、软件工程师等。 使用场景及目标:①了解ETL工程师的职责技能要求;②选择适合自己的ETL工具;③规划ETL工程师的职业发展路径;④获取相关的学习资源求职建议。 其他说明:随着大数据技术的发展企业数字化转型的加速,ETL工程师的需求不断增加,尤其是在金融、零售、制造、人工智能、物联网区块链等领域。数据隐私保护法规的完善也使得ETL工程师在数据安全合规处理方面的作用更加重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值