Function 处理-使用CP5按钮初始化功能

Function 处理-使用CP5按钮初始化功能,function,initialization,processing,control-p5,Function,Initialization,Processing,Control P5,我有一段代码,在网格中随机绘制六边形,并从数组中随机着色 我想做的是按下CP5按钮来初始化绘图函数。如果我再次按下此按钮,它将用黑色填充所有绘制的六边形,并重新初始化绘图功能 当前,此操作将初始化图形: void mousePressed(){ 如果(活动计数器==0){ 六边形[int(宽/2)][int(高/2)]。活动=真; 有源_计数器++; } } 所以我尝试了这种方法: public void开始绘图(int值){ println(“开始绘图时的按钮事件:“+theValue”);

我有一段代码,在网格中随机绘制六边形,并从数组中随机着色

我想做的是按下CP5按钮来初始化绘图函数。如果我再次按下此按钮,它将用黑色填充所有绘制的六边形,并重新初始化绘图功能

当前,此操作将初始化图形:

void mousePressed(){
如果(活动计数器==0){
六边形[int(宽/2)][int(高/2)]。活动=真;
有源_计数器++;
}
}
所以我尝试了这种方法:

public void开始绘图(int值){
println(“开始绘图时的按钮事件:“+theValue”);
c1=c2;
c2=颜色(0,0,0);
如果(活动计数器==40){
填充(颜色(0));
}
}
这是行不通的,因为“填充”没有连接到“六边形”,但我很难以正确的方式附加它

这是完整的代码:

导入控制p5.*;
控制p5-cp5;
int myColor=color(255);
int c1,c2;
n,n1;
//------六边形网格-------------
六边形[][]六边形;
浮点数rx=51;
浮动ry=56;
国际范围;
int高;
int六边形;
int active_计数器=0;
布尔主动;
int max_六边形;
浮动Xoffset,Yoffset;
int-randX;
内兰迪;
国际评级;
int x;
int-y;
int[]stepX={-1,-1,1,0,1,1};
int[]stepY={{0,1,-1,1,0,1},{0,-1,-1,1,0,-1};
六角类{
浮动x;
浮动y;
国际兰特;
颜色[]颜色;
布尔主动;
六角体(浮子ix、浮子iy){
x=ix;
y=iy;
主动=假;
//颜色数组
颜色=新颜色[10];
颜色[0]=颜色(#62563D);//步兵绿
颜色[1]=颜色(#2C2B2D);//巴黎夜蓝
颜色[2]=颜色(#3E2224);//紫心
颜色[3]=颜色(#A49F9B);//野鸽灰
颜色[4]=颜色(#684F40);//棕色
颜色[5]=颜色(#5C573D);//苔藓绿
颜色[6]=颜色(#B9897F);//粉红色
颜色[7]=颜色(#24283B);//深蓝色
颜色[8]=颜色(#1F1D20);//黑色
颜色[9]=颜色(#C5A9A2);//巴西粘土
//获取颜色数组并输出随机颜色
rand=(int)random(colors.length);
}
//------嵌套绘图-------------
作废提款(){
如果(活动){
//按随机顺序调用颜色数组
填充(颜色[rand]);
}否则{
noFill();
}
中风(80);
pushMatrix();
翻译(x,y);
beginShape();
顶点(-17,-28);
顶点(17,-28);
顶点(34,0);
顶点(17,28);
顶点(-17,28);
顶点(-34,0);
端形(闭合);
popMatrix();
}
}
//------设置-------------
无效设置(){
规模(1000、700);
//------CP5控制按钮-------------
cp5=新控制P5(本);
cp5.添加按钮(“开始绘图”)
.setValue(0)
.设置位置(20,80)
.设置大小(200,19)
;
//------创建六边形网格-------------
宽=int(宽/rx)+2;
高度=int(高度/ry)+2;
最大六边形=40;
六边形=新六边形[宽][高];
对于(int y=0;y0和活动计数器<最大六边形){
nextHex();
}
popMatrix();
myColor=lerpColor(c1,c2,n);
n+=(1-n)*0.1;
} 
公共无效控制事件(控制事件){
println(theEvent.getController().getName());
n=0;
}
公共无效开始绘图(int值){
println(“开始绘图时的按钮事件:“+theValue”);
c1=c2;
c2=颜色(0,0,0);
如果(活动计数器==40){
填充(颜色(0));
}
}
//------鼠标交互-------------
void mousePressed(){
如果(活动计数器==0){
六边形[int(宽/2)][int(高/2)]。活动=真;
有源_计数器++;
}
}
//------绘制下一个六边形-------------
void nextHex(){
int randX=int(随机(宽));
int randY=int(随机(高));
而(!hexagons[randX][randY].处于活动状态){
randX=int(随机(宽));
randY=int(随机(高));
} 
int randD=int(随机(6));
如果(
randX+stepX[randD]>=0&&
randX+stepX[randD]<宽&&
randY+stepY[randX%2][randD]>=0&&
randY+stepY[randX%2][randD]<高
) {
如果(!hexagons[randX+stepX[randD]][randY+stepY[randX%2][randD]]处于活动状态){
有源_计数器++;
}
六边形[randX+stepX[randD]][randY+stepY[randX%2][randD]]。活动=真;
}
}

难道不能将填充值存储在草图级别变量中并使用它吗?难道不能将填充值存储在草图级别变量中并使用它吗?