我想做的是从构成等边三角形的三个点开始。我的代码应该随机选择三个点中的两个,计算一个中点 (m),然后绘制它。然后从它生成的中点 m 开始,代码将随机选择三个原始点中的另一个并计算一个新的中点 (m2)。最后一步应重复 10,000 次。我刚开始使用 Java,我真的迷路了。我最大的问题是不知道怎么随机取点,也不知道怎么从取两个原点的中点到取旧中点和一个原点的中点. 这是我到目前为止的代码(请随时指出我在代码中犯的任何错误!):
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Dimension;
public class Game
{
static final int HEIGHT = 500;
static final int WIDTH = 500;
public static void main(String[] args)
{
JFrame frame = new JFrame("The Game");
Board board = new Board(WIDTH, HEIGHT);
Point p1 = new Point(0,0);
Point p2 = new Point(500, 0);
Point p3 = new Point(0, 250);
frame.setSize(WIDTH, HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(board);
board.addPoint(p1);
board.addPoint(p2);
board.addPoint(p3);
frame.pack();
frame.setVisible(true);
}
}
class Board extends JPanel
{
public Board(int h, int w)
{
setPreferredSize(new Dimension(w, h));
}
public void addPoint(Point p)
{
points.add(p);
}
public void paint(Graphics g)
{
super.paint(g);
int i = 0;
while (i < 10000)
{
board.add();
i++;
}
}
}
class Point
{
int x;
int y;
public Point(int x, int y)
{
x = this.x;
y = this.y;
}
private static Point midPoint(Point p1, Point p2)
{
return new Point((p1.x + p2.x)/2, (p1.y + p2.y)/2);
}
public double getX()
{
return x;
}
public double getY()
{
return y;
}
}