我已经编码了两个月了,我决定尝试将同心圆作为处理项目。已经有两个星期,我已经想出了如何创建圆圈,但我想随机化每个圆圈的颜色,但不要让它看起来像马里奥卡丁车的彩虹之路。这是我的代码希望你可以帮助
void setup()
{
size(500,500);
background(131);
}
void draw()
{
coolCircles();
}
void coolCircles()
{
for(int x = 500; x >= 20; x-=20)
{
int r = (int)(random(1,255));
int g = (int)(random(1,255));
int b = (int)(random(1,255));
fill(r, g, b);
ellipse(250, 250, x, x);
}
}
答案 0 :(得分:0)
Stack Overflow并非真正针对这样的一般问题而设计。但是我会在一般意义上尝试提供帮助。
我假设当你说:
不要让它看起来像Mario Kart的彩虹之路
您的意思是要限制圆圈的颜色。有一百万种不同的方法可以做到这一点,您选择哪种方法取决于您想要做什么。我建议breaking your problem down into smaller pieces并尝试用英语写出你想要发生的事情,然后再考虑用代码实现它。
但关键是你的代码的这一部分:
int r = (int)(random(1,255));
int g = (int)(random(1,255));
int b = (int)(random(1,255));
fill(r, g, b);
这是你想出颜色的地方。您需要限制这些数字。同样,你如何做到这一点取决于你想要发生什么。但是例如:
float gray = random(256);
fill(gray);
这将为您提供灰度调色板而不是彩虹调色板。或者:
float r = random(256);
fill(r, 0, 0);
这会给你一个红色调色板。或者:
float r = random(256);
float g = random(r);
float b = random(r);
fill(r, g, b);
这会给你主要是红色的颜色,但也有一些绿色和蓝色。
关键是你需要首先能够解释(对你自己,用英语)你正在尝试做什么。如果你有,那么你可以使用代码来获得你想要的效果。祝你好运。