【发布时间】:2017-10-19 17:49:50
【问题描述】:
我想编写一个在窗口上绘制一些特定点的代码。我有 3 个不同的点 $(e1,e11), (e2,e22), (e3,e33)$。我想随机选择其中一个,根据输出,画一个不同的点。
public class ChaosGame {
public static void main(String[] args) {
Window window = new Window("Chaos", 800, 800);
window.open();
int e1 = 420;
int e11 = 170;
int e2 = 230;
int e22 = 670;
int e3 = 700;
int e33 = 540;
while (window.isOpen()) {// ändere den Fensterinhalt
int pos1 = 100;
int pos2 = 300;
int i = (int) (Math.random() * 3);
if (i == 0 || i == 3) {
window.fillRect(pos1 + e1 / 2, pos2 + e11 / 2, 5, 5);
pos1 = e1 / 2;
pos2 = e11 / 2;
window.refresh();
} else if (i == 1) {
window.fillRect(pos1 + e2 / 2, pos2 + e22 / 2, 5, 5);
pos1 = e2 / 2;
pos2 = e22 / 2;
window.refresh();
} else {
window.fillRect(pos1 + e3 / 2, pos2 + e33 / 2, 5, 5);
pos1 = e3 / 2;
pos2 = e33 / 2;
window.refresh();
}
}
}
}
fillRect 在新窗口中绘制我的观点。现在当我运行这个程序时,只出现两点,即使它应该继续“while window.isOpen”,直到我关闭窗口。我认为我的 Math.random() 可能有问题。
【问题讨论】:
-
打印出矩形的坐标。您可能只是在窗外绘制它们。
-
我怎么会在窗外画画?应该选择位置,以便在内部绘制所有内容
-
查看
else中的fillRect。但即使你解决了这个问题,我也不明白为什么你会期望它在随机位置绘制。 -
谢谢!我总是更新位置,以便它绘制在一个新位置。我不是说随机位置,而是随机选择三个点中的一个来使用。但是现在只抽了3分……
-
有了这些值,它就不能超出窗口。