首页 > 后端开发 > 正文

从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用Java到底该怎么做?

2024-04-12 14:57:19 | 我爱编程网

今天我爱编程网小编整理了从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用Java到底该怎么做?相关信息,希望在这方面能够更好帮助到大家。

本文目录一览:

从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用Java到底该怎么做?

一张嵌入传感器的地毯人在上面行走的轨迹怎样用java在图上显示

轨迹采集应该可以从相应端口取得数据,核心是坐标转换,这部分需要根据相应的计算逻辑进行映射,展示逻辑相对来说简单可以利用JPanel进行绘制,下面是示例代码.

public class ContentPanel extends JPanel {

private static final long serialVersionUID = -4117349446067707681L;

@Override

public void paint(Graphics g) {

super.paint(g);

g.setColor(Color.BLUE);

Dimension size = this.getSize();

int startX = 10;

int startY = 10;

int width = size.width - 20;

int height = size.height - 20;

g.drawRect(startX, startY, width, height);

for (int y = startY + 10; y < (startY + height); y += 10) {

g.drawLine(startX, y, startX + width, y);

}

}

}

从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用Java到底该怎么做?

从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用Java到底该怎么做?

import javax.swing.*;

import javax.swing.Timer;

import java.awt.*;

import java.awt.image.*;

import java.util.*;

/**

* 面板上的光标改变成为手型

* @author hardneedl

*/

final class RandomPointDemo extends JFrame{

private static final Dimension SIZE = new Dimension(600,400);

public Dimension getMinimumSize() {return SIZE;}

public Dimension getMaximumSize() {return SIZE;}

public Dimension getPreferredSize() {return SIZE;}

public String getTitle() {return "RandomPointDemo";}

/*画笔*/

private interface Brush extends Observer {

void paint(Graphics g);

Component getComponent();

}

abstract private class PointBrush implements Brush {

private static final int OFFSET = 2;

private BufferedImage getImage() {

return image;

}

private BufferedImage image;

//上一次点的位置

private int lastX, lastY;private Point newPoint;

PointBrush(int x,int y) {

lastX = x;lastY = y;

image = new BufferedImage(2000,2000,BufferedImage.TYPE_INT_RGB);

}

public void paint(Graphics g2) {

if (newPoint != null&&image != null) {

g2.setColor(Color.ORANGE);

g2.drawLine(lastX,lastY,newPoint.x,newPoint.y);

g2.setColor(Color.MAGENTA);

g2.fillRect(newPoint.x - OFFSET, newPoint.y - OFFSET, OFFSET<<1, OFFSET<<1);

g2.dispose();

lastY = newPoint.y;

lastX = newPoint.x;

}

}

public void update(Observable o, Object arg) {

if(arg instanceof Point) {

newPoint = (Point) arg;

paint(image.createGraphics());

}

}

}

/*画布*/

private class Canvas extends JComponent {

private void setBrush(PointBrush brush) {

this.brush = brush;

}

private PointBrush brush;

private Canvas(PointBrush brush) {

super();

this.brush = brush;

}

private Canvas() {

}

protected void paintComponent(Graphics g) {

super.paintComponent(g);

if (isVisible()&&null!=brush) {

Graphics2D g2 = brush.getImage().createGraphics();

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);

brush.paint(g2);

g.drawImage(brush.getImage(),0,0,this);

}

}

}

private Timer timer;我爱编程网

private Canvas canvas;

private RandomPointDemo() {

super();

init();

addListeners();

doLay();

}

private void init(){

canvas = new Canvas();

PointBrush brush = new PointBrush(canvas.getWidth()>>1, canvas.getHeight()>>1) {

public Component getComponent() {

return canvas;

}

};

canvas.setBrush(brush);

timer = new Timer(500, e -> {

Random random = new Random(System.currentTimeMillis());

Point newPoint = new Point(

random.nextInt(canvas.getWidth()),

random.nextInt(canvas.getHeight())

);

brush.update(null, newPoint);

canvas.paintImmediately(canvas.getBounds());

});

timer.start();

}

private void addListeners(){

}

private void doLay(){

Container container = getContentPane();

container.add(canvas, BorderLayout.CENTER);

pack();

setVisible(true);

}

public static void main(String... args) {

System.setProperty("swing.defaultlaf","com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

SwingUtilities.invokeLater(RandomPointDemo::new);

}

}

从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用Java到底该怎么做?

关于JAVA程序流程图的编写

我爱编程网(https://www.52biancheng.com)小编还为大家带来关于JAVA程序流程图的编写的相关内容。

流程图如下:首先,你的JAVA程序是用来进行选手评分的。为保证公正性,所以一般都会以去掉一个最高分,在去掉一个最低分,求和算平均值的方法来算的。float[] score={8.5f,9.5f,8,7,9,8.7f,6.8f,10,7.9f,8.9f};score数组中,即为各个评委给出的的结果。通过Arrays.sort(score);将数组由小到达排序,即为:float[] score={6.8f,7.0f,7.9f,8.0f,8.5f,8.7f,8.9f,9.0f,9.5f,10};之后用for循环求和,在求和过程中为去掉最低分,所以从索引j=1开始累加(数组索引由0开始)为去掉最高分,加到索引j=score.length-1(数组个数-1)。此时for循环后,sum即为去掉最高分和最低分的求和了。之后的事情,相信你就明白了,我就不多说了。

以上,就是我爱编程网小编给大家带来的从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用Java到底该怎么做?全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用Java到底该怎么做?”相关推荐
怎么用java做动画
怎么用java做动画

java运行的五个步骤?Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode)2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言("semi-interpreted"language)。下面通过以下这个java程序,来说明java程序从编译到最后运行的整个流程。

2024-06-01 23:04:50
python pygame 中如何让角色移动到地图中间 在按下 方向键 向右后 地图向左移动?
python pygame 中如何让角色移动到地图中间 在按下 方向键 向右后 地图向左移动?

pythonpygame中如何让角色移动到地图中间在按下方向键向右后地图向左移动?pygame.Surface.get_rect()方法返回值是一个Rect对象,该对象有一个move()方法可以用于移动矩形。move(x,y)函数有两个参数,第一个参数是X轴移动的距离,第二个参数是Y轴移动的距离。窗口的左上角是(0,0),如果是move(100,50)就是左移100下移50。Python

2023-12-16 05:51:09
java程序运行轨迹 用java写一个物体移动的轨迹
java程序运行轨迹 用java写一个物体移动的轨迹

关于java中模拟抛物线轨迹的问题看了这套题目感觉很有兴趣,就花了一个中午亲手给你写了一个类似的例子,相信可以帮助你对这个游戏有很好的理解,从右向左那个是僵尸,点一下鼠标就出现植物,我只是起到一个抛砖引玉的作用。代码如下(绝对可以用的代码):import java.awt.Dimension;import java.awt.Graphics;import java.awt

2024-03-24 03:41:53
怎么画太极图
怎么画太极图

怎么画太极图画太极图的步骤如下,仅供参考:1、先画一个正圆;2、在正圆的心直径位置,左右各一部分画一个“S”,就将正圆分成了两个部分。3、在左右两部分的小圆窝里各画一个小圆。4、最后将一部分涂成黑色,其中的小圆留白,白色部分的圆形涂成黑色。太极图中的黑白即代表阴阳,白色为阳,黑色为阴,里面的两个小圆点表示阳中有阴,阴中有阳。太极图展现了一种相互转化,相对统一

2024-01-14 14:12:07
php随机浮点数有哪些?比如从0.1到3.0中随机一个浮点数出来?
php随机浮点数有哪些?比如从0.1到3.0中随机一个浮点数出来?

Php中生成6位随机数并显示Php中生成6位随机数并显示实现如下:1、使用shuffle函数生成随机数。&lt;?php$arr=range(100000,999999);shuffle($arr);foreach($arr as $values){echo $values."";//显示随机数}?&gt;2、使用array_un

2024-07-20 07:23:28
Python如何画cos和sin的图啊?
Python如何画cos和sin的图啊?

Python如何画cos和sin的图啊?在python自带编辑器IDLE中,新建脚本如作图.py导入需要的模块importnumpyasnpimportscipyasspimportpylabaspl2输入代码x=np.linspace(0,4*np.pi,100)pl.plot(x,pl.sin(x))pl.show()

2024-01-02 19:05:35
怎么不安装类库用php画曲线图和饼图?
怎么不安装类库用php画曲线图和饼图?

怎么不安装类库用php画曲线图和饼图?php本身没有画图功能。都是通过GD库等外部扩展实现的。如果只是单纯的曲线图和饼图,可以考虑使用前端js代码实现,比如iChart等插件都能做出很漂亮的示意图。比GD搞出来的要漂亮,而且是动态的,可以根据点击进行交互。如何在wps里绘制函数图像,或者可以用嘛画函数图像如果只要函数图象的话,可以画出来。简单的比如y=x*x,你做一个表,x分别从

2024-12-23 20:34:09
php 面试遇到一个问题,思考出了一点门道,但是不知道该怎么写这个函数!
php 面试遇到一个问题,思考出了一点门道,但是不知道该怎么写这个函数!

下列有关PHP函数的叙述中,正确的是()。下列有关PHP函数的叙述中,正确的是()。A.在调用的一个函数中,必须要有return语句用于返回B.在调用的一个函数中,也可以调用这个函数本身C.在调用的一个函数中,可以调用另外一个函数D.在程序代码的书写顺序上,PHP函数必须先书写定义代码,后书写调用代码正确答案:BCphp面试遇到一个问题,思考出了一点门道,但

2024-08-18 15:57:22