首页 > 后端开发 > 正文

从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用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程序流程图的编写

流程图如下:首先,你的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到底该怎么做?全部内容,希望对大家有所帮助!
与“从画面中心开始画点,这个点随机上下左右移动,形成如图轨迹,直到离开画面。用Java到底该怎么做?”相关推荐
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
python自动生成插画-python怎么根据数据生成图像
python自动生成插画-python怎么根据数据生成图像

python自动生成插画-python怎么根据数据生成图像如何用python画五一海报要用Python画五一海报,需要用到Python的绘图库,比如matplotlib、Pillow等。以下是一个简单的例子,演示如何使用Python和Pillow库来制作五一海报:fromPILimportImage,ImageDraw,ImageFont#创建一个空白的画布,大小为800x

2023-12-13 15:46:29
怎么画太极图
怎么画太极图

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

2024-01-14 14:12:07
python怎么生成随机图形验证码
python怎么生成随机图形验证码

python怎么生成随机图形验证码1.安装pillow模块pipinstallpillow2.pillow模块的基本使用1.创建图片fromPILimportImage#定义使用Image类实例化一个长为400px,宽为400px,基于RGB的(255,255,255)颜色的图片img1=Image.new(mode="RGB",size=(400,400),colo

2024-01-11 12:40:42
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
java中如何实现自动计时功能,就是点击一个start按钮就开始计时,以秒为单位
java中如何实现自动计时功能,就是点击一个start按钮就开始计时,以秒为单位

java中如何实现自动计时功能,就是点击一个start按钮就开始计时,以秒为单位简单代码如下:import java.awt.Button;import java.awt.FlowLayout;import java.awt.Label;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;impo

2024-03-25 21:26:30
如何用python matplotlab 画出一个分段函数
如何用python matplotlab 画出一个分段函数

如何用pythonmatplotlab画出一个分段函数几个绘图的例子,来自API手册:1、最简单的图:代码:[python]viewplaincopyprint?#!/usr/bin/envpythonimportmatplotlib.pyplotaspltplt.plot([10,20,30])plt.xlabel('tiems')plt.ylabel('

2023-12-23 12:08:32