java小球触底反弹代码 java小球反弹经过米数

java程序:编写一个程序,让一个小球在JFrame中滚动,当碰边缘时则选择一个角度返回.05年写的 , 你修改一下吧
/*
* 一个在窗体中来回运动的圆.java
*
* Created on 2005年10月5日, 下午1:02
*
* To change this template, choose Tools | Options and locate the template under
* the Source Creation and Management node. Right-click the template and choose
* Open. You can then make changes to the template in the Source Editor.
*/
package javaapplication1;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Event;
【java小球触底反弹代码 java小球反弹经过米数】import java.awt.Graphics;
import java.applet.*;
import java.awt.*;
import java.math.*;
/**
*
* @author Bachelorlrz
*/
public class 在窗体中来回运动的圆 extends java.applet.Applet implements java.lang.Runnable {
int cx,cy,c1x,c1y;//圆的坐标
int cw,ch;//圆的宽高
int bx,by,bw,bh;//背景的坐标和宽高
int dx,dx1;//圆的运动
int r,rx,ry;//圆的半径和位置
int r1,r1x,r1y;
Thread u_thread;
/** Initialization method that will be called after the applet is loaded
*into the browser.
*/
public void init() {
rx=150;ry=160;
bw=500;bh=400;
r1x=bw/2-cw*2;r1y=bh/2-ch;
r=60;r1=200;
cx =rx;cy =ry;
c1x=r1x;c1y=r1y;
cw=30;ch=30;
bx=2;by=2;
dx=1;dx1=2;
// TODO start asynchronous download of heavy resources
}
// TODO overwrite start(), stop() and destroy() methods
public void update(java.awt.Graphics g) {
super.paint(g);
g.setColor(Color.red);
g.drawRect(bx,by,bw,bh);
g.setColor(Color.BLACK);
g.fillRect(bx 2,by 2,bw-4,bh-4);
g.drawString("在窗体中来回运动的圆", bw/2-60, bh/2);
if (cxrx-r|| cxrx r) {
dx = -dx;
}
if (c1xr1x-r1|| c1xr1x r1) {
dx1 = -dx1;
}
cx =cx dx;
cy =(int)(dx*Math.sqrt(r*r-(cx-rx)*(cx-rx))) ry;
c1x =c1x dx1;
c1y =(int)(dx1/2*Math.sqrt(r1*r1-(c1x-r1x)*(c1x-r1x))/2);
// g.drawArc(cx, cy, cw, ch, 0, 360);
for(int i=0;i8;i){
if (i%5 == 0){
g.setColor(Color.black);
}else if ( i%5== 1) {
g.setColor(Color.GREEN);
}else if(i%5==2){
g.setColor(Color.RED);
}else if( i%5 ==3){
g.setColor(Color.pink);
}else {
g.setColor(Color.orange);
}
g.drawLine(bx,by, cx 10,cy i 10);
g.drawLine(bx bw,by bh,cx 10,cy i 10);
g.drawLine(bx bw,by, cx 10,cy i 10);
g.drawLine(bx,by bh, cx 10,cy i 10);
g.drawLine(bx,by,-cx bw-bx-cw 10,cy i 10);
g.drawLine(bx bw,by bh,-cx bw-bx-cw 10,cy i 10);
g.drawLine(bx bw,by,-cx bw-bx-cw 10,cy i 10);
g.drawLine(bx,by bh,-cx bw-bx-cw 10,cy i 10);
g.drawLine(bx,by, c1x 10,c1y r1y i 10);
g.drawLine(bx bw,by bh,c1x 10,c1y r1y i 10);
g.drawLine(bx bw,by, c1x 10,c1y r1y i 10);
g.drawLine(bx,by bh, c1x 10,c1y r1y i 10);
g.drawLine(bx,by, r1x r1 cw-c1x 10,-c1y r1y i 10);
g.drawLine(bx bw,by bh,r1x r1 cw-c1x 10,-c1y r1y i 10);
g.drawLine(bx bw,by, r1x r1 cw-c1x 10,-c1y r1y i 10);
g.drawLine(bx,by bh,r1x r1 cw-c1x 10,-c1y r1y i 10);
g.drawArc(cx i, cy i, cw-i*2, ch-i*2, 0, 360);
g.drawArc(-cx bw-bx-cw i, cy i, cw-i*2, ch-i*2, 0, 360);
g.drawArc(c1x i, c1y r1y i, cw-i*2, ch-i*2, 0, 360);
g.drawArc(r1x r1 cw-c1x i, -c1y r1y i, cw-i*2, ch-i*2, 0, 360);
}
}
public void start(){
if (u_thread == null)
{
u_thread= new Thread(this);
u_thread.start();
}
}
public void run() {
while(true){
repaint();
try{
u_thread.sleep(10);
}
catch (InterruptedException e){
return;
}
}
}
}
java小球碰撞窗体边缘来回反弹的代码import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class RunningBallDemo extends JFrame {
public static void main(String args[]) {
new RunningBallDemo();
}
public RunningBallDemo() {
Ball ballPanel = new Ball(5, 5);
getContentPane().add(ballPanel);
setBackground(Color.BLACK);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setSize(350, 350);
setVisible(true);
Thread thread1 = new Thread(ballPanel);
thread1.start();
}
}
class Ball extends JPanel implements Runnable {
int rgb = 0;
Color color;
int x, y;
int dx = 5, dy = 5;
Ball(int x, int y) {
this.x = x;
this.y = y;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.BLACK);
g.setColor(color);
g.fillOval(x, y, 50, 50);
}
public void run() {
while (true) {
if (x = 0) {
dx = 5;
updateBallColor();
} else if ((x50) = getWidth()) {
dx = -5;
updateBallColor();
}
if (y = 0) {
dy = 5;
updateBallColor();
} else if ((y50) = getHeight()) {
dy = -5;
updateBallColor();
}
x = xdx;
y = ydy;
repaint();
try {
Thread.sleep(25);
} catch (InterruptedException e) {
;
}
}
}
public void updateBallColor() {
rgb = new Random().nextInt();
color = new Color(rgb);
}
}
用java解决:求代码? 一球从h米高度自由下落,每次落地后又反弹回原来高度的一半;在落下,求它 public class test{
public static double[] sum(double h,int k){
//h为初始高度,k为总次数
double[] temp = new double[2];
double sum =0;
double height =h;
if(k0){
temp =sum(h/2,k-1);
height =temp[1];
sum = h h/2temp[0];
}
temp[0]=sum;
temp[1]=height;
if(k==0){
temp[0]-=h;
}
return temp;
//数组中为当次总路程和当前高度
}
public static void main(String[] args){
double[] test = new double[2];
test = sum(2,2);
System.out.println("经过" test[0] "米" "反弹高度" test[1] "米");
}
}
Eclipse 写 java小程序 。6个小球碰撞反弹 。我知道怎么碰壁反弹 。我想要在碰撞过程中小球互相碰撞也反弹 。给小球类定义一个方法:碰撞;然后当周围环境的坐标到球心的距离等于小球的半径时,小球的运动路径算法就应该是轴对称的 。先判断之前的运动方向,然后根据运动方向确定新的运动方向 。这个其实就是线性方程做小球的运动轨迹而已 。
java程序,用for循环和位移运算符求一小球从10000米落下,每次反弹一半高度,问第十次的高度int dis = 10000;
int loc = 0;
int i = 0;
for(;i10;i){
dis = dis1;
loc = dis;
}
System.out.println(dis "米落下java小球触底反弹代码,第" i "次落地后java小球触底反弹代码的高度为java小球触底反弹代码:" loc "米");
关于java小球触底反弹代码和java小球反弹经过米数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读