网站建设资讯

NEWS

网站建设资讯

爱心轨迹Java代码 java编程爱心如何编

java如何编写用鼠标脱出轨迹 我的代码怎么修改就有轨迹了 求帮助

把鼠标的x和y放一个队列里,限定队列长度,每次都把队列里的点画出来就行了。

阿勒泰网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

用java写一个物体移动的轨迹

lz 你好

我做了一个比较简单的雏形

绿色正方形水平随机运动

蓝色正方形垂直随机运动

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.math.*;

public class MoveRect extends Frame implements Runnable{

private Rectangle hRect, vRect;

private Image buffer;

private Object o = new Object();

public MoveRect(){

super("MoveRect");

hRect = new Rectangle(50,0,50,50);//水平随机运动的正方形

vRect = new Rectangle(0,50,50,50);//垂直随机运动的正方形

setUndecorated(true);  

setLocation(500,200);

setSize(400,400);

setVisible(true);

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

}

//启动循环绘制(使正方形一直循环的运动)

public void circleDraw(){

}

//绘制正方形的状态

public void drawRect(Graphics g,Rectangle r){

g.drawRect(r.x, r.y, r.width, r.height);

}

//双缓冲机制(主要解决闪屏)

public void update(Graphics g){

buffer = createImage(getSize().width, getSize().height);

if(buffer != null){          

Graphics g2 = buffer.getGraphics();

paint(g2);

g2.dispose();      

g.drawImage(buffer, 0, 0, this);        

}

else{

paint(g);

}

}

public void paint(Graphics g){      

g.setColor(Color.GREEN);

drawRect(g,hRect);

g.setColor(Color.BLUE);

drawRect(g,vRect);

hRect.x = (int)(Math.random()*351);

vRect.y = (int)(Math.random()*351);  

}

public void run(){

while(true){

stop();

rePaint();

}              

}

//同步方法rePaint

public synchronized void rePaint(){

repaint();

}

//同步方法stop

public synchronized void stop(){

if(hRect.x = 50  vRect.y = 50){

try {

Thread.sleep(500);

}

catch (Exception ex) {

ex.printStackTrace();

}

}      

}

public static void main(String[] args){    

new Thread(new MoveRect()).start();

}

}

Java如何让多个图片都按照一定轨迹下落

图片的位移(下落),可以通过修改图片的x,y坐标来实现, 在Swing/Html中,我们可以使用Timer定时(比如每隔100毫秒)去修改图片的x,y坐标即可实现,

多个图片都按照一定的轨迹移动,那都按照自己的轨迹的算法,去定时修改x,y坐标即可.

JavaFX是java先进的图形界面框架, 里面有3D和各种动画, 所以按照轨迹移动,都能轻松实现

JavaFX参考代码如下

import javafx.animation.Animation;

import javafx.animation.Interpolator;

import javafx.animation.PathTransition;

import javafx.animation.RotateTransition;

import javafx.application.Application;

import javafx.geometry.Insets;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.image.ImageView;

import javafx.scene.layout.HBox;

import javafx.scene.shape.MoveTo;

import javafx.scene.shape.Path;

import javafx.scene.shape.QuadCurveTo;

import javafx.stage.Stage;

import javafx.util.Duration;

public class PathAnimateDemo extends Application {

public static void main(String[] args) {

launch(args);

}

@Override

public void start(Stage primaryStage) throws Exception {

ImageView imv=new ImageView(getClass().getResource("ball.png").toExternalForm());

Path path = new Path();// 路径;运动轨迹

MoveTo mt = new MoveTo(20, 50);

QuadCurveTo quadTo2 = new QuadCurveTo(175, 190, 350, 30);

path.getElements().addAll(mt, quadTo2);

HBox hbox = new HBox(10);

Button btnStart = new Button("开始");

Button btnPause = new Button("暂停");

Button btnResume = new Button("继续");

Button btnStop = new Button("结束");

hbox.getChildren().addAll(btnStart, btnPause, btnResume, btnStop);

hbox.setPadding(new Insets(20));

hbox.setLayoutX(80);

hbox.setLayoutY(230);

Group root = new Group();

root.getChildren().addAll(imv, path, hbox); // 不添加path.就可以不显示path了

Scene scene = new Scene(root, 430, 300);

primaryStage.setTitle("JavaFX");

primaryStage.setScene(scene);

primaryStage.show();

//旋转动画设置

RotateTransition rt=new RotateTransition(Duration.millis(1000),imv);

rt.setInterpolator(Interpolator.LINEAR);

rt.setFromAngle(0);

rt.setToAngle(360);

rt.setCycleCount(Animation.INDEFINITE);

rt.play();

//路径动画设置

PathTransition pt = new PathTransition(Duration.millis(800), path, imv);// 路径动画

pt.setCycleCount(Animation.INDEFINITE);

pt.setAutoReverse(true);

btnStart.setOnAction(e - {

pt.playFromStart();// 从头开始播放

});

//----按钮的响应设置---

btnPause.setOnAction(e - {

pt.pause();

});

btnResume.setOnAction(e - {

pt.play(); // 播放

});

btnStop.setOnAction(e - {

pt.jumpTo(new Duration(0));// 跳到第0秒处

pt.stop();

});

}

}


名称栏目:爱心轨迹Java代码 java编程爱心如何编
标题来源:http://cdweb.net/article/doeiceg.html