我正在尝试创建一个程序,该程序创建9个生物样本,这些生物样本从某个中间生物样本进化而来。目前,我有9个展示,虽然这些都是完全随机的。存储要在其他8中使用的初始生物样本值的最佳方法是什么?在数据结构中存储随机行值
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.JPanel;
public class BiomorphObject extends JPanel {
Graphics2D g2d;
Dimension size = getSize();
int w = size.width;
int h = size.height;
Random ran = new Random();
int x1;
int x2;
int y1;
int y2;
public BiomorphObject(Graphics g){
g2d = (Graphics2D) g;
g2d.setColor(Color.BLUE);
Random ran = new Random();
int x = Math.abs(ran.nextInt(100)) % w + 120;
int y = Math.abs(ran.nextInt(100)) % h;
int xMirror = x - 120;
g2d.drawLine(120, 85, x, y);
g2d.drawLine(120, 85, 120 - xMirror, y);
x1 = x;
y1 = y;
x2 = Math.abs(ran.nextInt(50)) % w + 120;
y2 = Math.abs(ran.nextInt(50)) % h;
paintBiomorph(g);
}
public void paintBiomorph(Graphics g) {
super.paintComponent(g);
for (int i = 0; i <= 10; i++) {
int xMirror1 = x1 - 120;
int xMirror2 = x2 - 120;
g2d.drawLine(x1, y1, x2, y2);
g2d.drawLine(120 - xMirror1, y1, 120 - xMirror2, y2);
x1 = x2;
y1 = y2;
x2 = Math.abs(ran.nextInt(100)) % w + 120;
y2 = Math.abs(ran.nextInt(100)) % h;
}
}
}
这是当前的GUI我有一个截图:
我已经分居构造函数和paint方法,并试图调用构造函数中的油漆。然而,当我尝试在GUI中调用生物形体对象时,它说我需要一个匹配参数来实现图形2D,但我不想在那里调用它,并且GUI似乎不运行。我已经做出以上更改供您查看。 –
我试图做的一点是您需要存储组成Biomorph的线条,以便可以绘制线条。我用这种方法快速尝试修改你的班级。然后不知怎的,你需要将孩子Biomorph与父生物形态联系起来。我不知道你是如何做到这一点的。也许你只是使用相同的X/Y值?如果是这样,那么您需要更改构造函数以传递每个Biomorph的起始x/y值。 – camickr