二维数组
BiDimensional Array
我为每个渐变创建了一个 class,以便使用 2DArrays,但它不起作用。我遵循了一些教程并看到了 Shifmann 的解释,所以我不明白为什么它是错误的(它只显示 1 个圆圈而不是 9 个)。
我想创建一个 3 x 3 的网格,目前它只显示 1 个圆圈
float posY = 200;
int cols = 3;
int rows = 3;
Gradient[][]grad = new Gradient[cols][rows];
void setup() {
size(600, 800);
smooth();
int raio = 30;
color c1 = color (253, 196, 80, 40);
color c2 = color(254, 127, 168, 40);
for (int i=0; i<cols; i++) {
for (int j=0; j<rows; j++) {
grad[i][j] = new Gradient (i*150, j*200, raio, c1, c2);
}
}
ellipseMode(RADIUS);
noStroke();
}
void draw () {
background (#F6C4C7);
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
grad[i][j].desenhar_grad();
}
}
}
void keyPressed()
{
if (key == 's') keyDown = true;
saveFrame("ellipse.jpg");
//saveFrame("ellipse.png");
println("sss");
}
class Gradient {
float x;
float y;
color cor1;
color cor2;
int raio;
Gradient(float posX, float posY, int r, color c1, color c2) {
x=posX;
y=posY;
raio=r;
cor1=c1;
cor2=c2;
}
void desenhar_grad() {
pushStyle();
noStroke();
for (int r = raio; r > 0; r--) {
int tom = lerpColor(cor1, cor2, map(r, 0, raio, 0.0, 1.0)); // os últimos dois valores são as cores. o primeiro é o centro, o segundo é o exterior
fill(tom);
circle(posX, posY, r * 2);
}
popStyle();
}
}```
坐标属性的名称是x
和y
:
circle(posX, posY, r * 2);
circle(x, y, r * 2);
我为每个渐变创建了一个 class,以便使用 2DArrays,但它不起作用。我遵循了一些教程并看到了 Shifmann 的解释,所以我不明白为什么它是错误的(它只显示 1 个圆圈而不是 9 个)。 我想创建一个 3 x 3 的网格,目前它只显示 1 个圆圈
float posY = 200;
int cols = 3;
int rows = 3;
Gradient[][]grad = new Gradient[cols][rows];
void setup() {
size(600, 800);
smooth();
int raio = 30;
color c1 = color (253, 196, 80, 40);
color c2 = color(254, 127, 168, 40);
for (int i=0; i<cols; i++) {
for (int j=0; j<rows; j++) {
grad[i][j] = new Gradient (i*150, j*200, raio, c1, c2);
}
}
ellipseMode(RADIUS);
noStroke();
}
void draw () {
background (#F6C4C7);
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
grad[i][j].desenhar_grad();
}
}
}
void keyPressed()
{
if (key == 's') keyDown = true;
saveFrame("ellipse.jpg");
//saveFrame("ellipse.png");
println("sss");
}
class Gradient {
float x;
float y;
color cor1;
color cor2;
int raio;
Gradient(float posX, float posY, int r, color c1, color c2) {
x=posX;
y=posY;
raio=r;
cor1=c1;
cor2=c2;
}
void desenhar_grad() {
pushStyle();
noStroke();
for (int r = raio; r > 0; r--) {
int tom = lerpColor(cor1, cor2, map(r, 0, raio, 0.0, 1.0)); // os últimos dois valores são as cores. o primeiro é o centro, o segundo é o exterior
fill(tom);
circle(posX, posY, r * 2);
}
popStyle();
}
}```
坐标属性的名称是x
和y
:
circle(posX, posY, r * 2);
circle(x, y, r * 2);