用processing语言画一个棋盘格样式的可互动图形,棋盘格能够随鼠标触碰随机变大或变小
时间: 2023-09-04 17:12:07 浏览: 39
好的,以下是我为您编写的代码:
```processing
int gridSize = 50; // 棋盘格大小
int numRows, numCols; // 棋盘格行数和列数
void setup() {
size(500, 500);
background(255);
numRows = height / gridSize;
numCols = width / gridSize;
}
void draw() {
drawGrid();
}
void drawGrid() {
for (int y = 0; y < numRows; y++) {
for (int x = 0; x < numCols; x++) {
int xPos = x * gridSize;
int yPos = y * gridSize;
fill(random(255), random(255), random(255));
rect(xPos, yPos, gridSize, gridSize);
}
}
}
void mouseMoved() {
int gridX = mouseX / gridSize;
int gridY = mouseY / gridSize;
int xPos = gridX * gridSize;
int yPos = gridY * gridSize;
int newSize = random(gridSize/2, gridSize*2);
rect(xPos, yPos, newSize, newSize);
}
```
解释一下代码:
我们首先定义了一个`gridSize`变量,表示棋盘格的大小。然后在`setup()`函数中,我们获取了画布的宽高并计算出了棋盘格的行数和列数。`draw()`函数中调用了`drawGrid()`函数,用来绘制棋盘格。
`drawGrid()`函数中,我们使用两个嵌套循环来遍历所有的棋盘格,并为每个棋盘格随机设置一种颜色。这里我们使用了`random()`函数来生成随机颜色。
最后,我们使用了`mouseMoved()`函数来监测鼠标移动事件。当鼠标移动时,我们计算出当前鼠标所在的棋盘格的位置,并随机生成一个新的大小,然后重新绘制该棋盘格。
希望这份代码能够满足您的需求,如有问题可以随时向我提出。