【发布时间】:2021-09-05 11:31:29
【问题描述】:
我是处理新手,我只是想画一些基本草图来熟悉它。 我已经制作了一个圆圈网格,当我将鼠标悬停在它上面时,我想更改一个圆圈的填充颜色。
color[] pastel = {#8dd3c7, #ffffb3, #bebada, #fb8072, #80b1d3, #fdb462, #7fc97f};
color[] palette = pastel;
int fc = palette[2];
int r = 40;
int s = 50;
void setup() {
size(500, 500);
smooth();
noStroke();
background(#e8e8e8);
// background(#5e5e5d);
}
void draw() {
for(int x = 0+s/2; x < width; x += s){
for(int y = 0+s/2; y < height; y += s) {
fill(fc);
ellipse(x, y, r, r);
if(dist(x, y, mouseX, mouseY) < r/2) {
fc = palette[3];
} else {
fc = palette[2];
}
}
}
}
虽然,鼠标坐标和改变填充颜色的圆之间存在偏移 - 改变颜色的那个是我悬停的那个下方的那个。 知道为什么吗? 谢谢!
【问题讨论】:
-
你在画完椭圆后改变颜色。
-
如果我在 ellipse() 函数之后写:fill(fc) 那么改变颜色的圆圈是我悬停的圆圈下方的两个圆圈
-
“改变颜色”是指“为
fc分配新颜色。 -
我在 for 循环的末尾编写了 fill() 和 ellipse() 命令,现在它可以工作了。谢谢!
-
希望你能明白为什么:-)
标签: java processing