gpt4 book ai didi

java - 嵌套 for 循环 - 处理 (java)

转载 作者:行者123 更新时间:2023-11-30 08:45:56 27 4
gpt4 key购买 nike

我的任务是绘制一个 10 x 10 轮子的网格。每个都应该是随机颜色,并且像真正的轮子一样有很多辐条。我必须使用嵌套的 for 循环来做到这一点。

我已经找到了下面的代码,但出于某种原因,它绘制了一个 10 x 无限网格。我不明白为什么外循环只能运行 10 次。

float XPos = 25;
float YPos = 25;
float Radius = 20;

void setup() {
size(500, 500);
}

void draw() {
for (int h = 0; h < 10; h++) {
for (int i = 0; i < 10; i++) {
float RanR = random(250);
float RanG = random(250);
float RanB = random(250);

stroke(RanR, RanG, RanB);
ellipse(XPos, YPos, Radius * 2, Radius * 2);

for (int j = 0; j < 360; j += 10) {
stroke(RanR, RanG, RanB);
line(XPos,
YPos,
XPos + Radius * sin(radians(j)),
YPos + Radius * cos(radians(j))
);
}

XPos += Radius * 2;
}

XPos = 25;
YPos += Radius * 2;
}
}

最佳答案

draw() 函数每秒自动调用 60 次。您将 XPosYPos 变量保存在 draw() 函数之外,因此您在 中对它们所做的任何更改draw() 函数将在下次调用 draw() 时保留。

与其将 XPosYPos 变量保存在草图的顶层,不如在 for 循环中创建它们并将它们基于 hi:

float Radius = 20;

void setup() {
size(500, 500);
}

void draw() {
for (int h = 0; h < 10; h++) {
for (int i = 0; i < 10; i++) {

float XPos = 25+40*h;
float YPos = 25+40*i;
float RanR = random(250);
float RanG = random(250);
float RanB = random(250);

stroke(RanR, RanG, RanB);
ellipse(XPos, YPos, Radius * 2, Radius * 2);

for (int j = 0; j < 360; j += 10) {
stroke(RanR, RanG, RanB);
line(XPos,
YPos,
XPos + Radius * sin(radians(j)),
YPos + Radius * cos(radians(j))
);
}
}
}
}

请注意,这会导致您的圆圈每秒以随机颜色重新绘制 60 次。您可以使用 randomSeed()函数每次都获得相同的随机数,或者您可以在 draw() 结束时调用 noLoop(),这样它就不会自动再次调用。

关于java - 嵌套 for 循环 - 处理 (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33108041/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com