Processing 为什么可以';是否重新绘制第二个小程序并进行处理?

Processing 为什么可以';是否重新绘制第二个小程序并进行处理?,processing,Processing,我正在使用Processing3,实际上我正在尝试使用2个窗口 我想重画第二个窗口,但重画什么也不做(在最终项目中,从串行端口传入的数据将使重画)。我不知道为什么 这是我的密码: /* *17.09.16:Logan Gallois *未来进口: *来自RGB LED的PWMs值的Windows打印图形 *添加自动检测位置以将窗口移动到正确位置 */ 输入处理。串行。*; 串行端口; 第二种是sa; 整数[]个数=新整数[600]; 布尔标志=假; 浮动变量1; 浮动变量2; 浮动变量3; 浮动

我正在使用Processing3,实际上我正在尝试使用2个窗口

我想重画第二个窗口,但重画什么也不做(在最终项目中,从串行端口传入的数据将使重画)。我不知道为什么

这是我的密码:

/*
*17.09.16:Logan Gallois
*未来进口:
*来自RGB LED的PWMs值的Windows打印图形
*添加自动检测位置以将窗口移动到正确位置
*/
输入处理。串行。*;
串行端口;
第二种是sa;
整数[]个数=新整数[600];
布尔标志=假;
浮动变量1;
浮动变量2;
浮动变量3;
浮动变量4;
无效设置(){
大小(1024576);//粘贴在褶皱上
表面。可设置大小(假);
仰泳();
println(Serial.list());/*验证器将列出您的任务l'arduino*/
/*这是一个很好的选择*/
/*一般情况下,0安装windows,1安装mac*/
字符串os=System.getProperty(“os.name”);/*自动检测操作系统*/
如果(操作系统!=“Mac os X”){
如果(Serial.list().length>0){
myPort=new Serial(这是Serial.list()[0],115200);
}
}否则{
如果(Serial.list().length>1){/*模块在位置0*/
myPort=new Serial(这是Serial.list()[1],115200);
}
}
//重要提示:在阿尔杜伊诺的波德河畔
myPort.bufferUntil('\n');
字符串[]args={“TwoFrameTest”};
sa=新的第二个小程序();
PApplet.runSketch(args,sa);
延迟(100);
}
作废提款(){
如果(!标志){
表面。设置位置(displayWidth/2-width/2-400,displayHeight/2-height/2);
sa.frame.setTitle(“监控RGB值”);
flag=true;
}
背景(颜色(int(var1)、int(var2)、int(var3));
//sa.背景(0,255,0);

/*对于(int i=0;i发布时,请尝试将问题缩小到一个。这意味着删除所有序列内容,只使用基本的鼠标事件

您的第二个草图的
draw()
函数为空。您希望调用
redraw()
实际做什么

以下是一个MCVE示例:

sa;
无效设置(){
尺寸(500500);//贴上褶皱图案
字符串[]args={“TwoFrameTest”};
sa=新的第二个小程序();
PApplet.runSketch(args,sa);
延迟(100);
}
作废提款(){
背景(255,0,0);
}
void mouseClicked(){
sa.redraw();
}
公共类SecondApplet扩展PApplet{
公共无效设置(){
大小(100100);
noLoop();
}
公众抽签(){
背景(0);
椭圆(随机(宽度),随机(高度),25,25);
}
公共无效鼠标单击(){
重画();
}
}
此MCVE工作正常,并从第一个和第二个草图窗口正确触发第二个草图的
draw()
函数


我建议您从这个MCVE开始工作。如果您仍然无法让它工作,请随时发布后续问题,最好不要使用串行内容(这会使您的草图无法运行,因为我们无法访问您的硬件).祝你好运。

好的,我想可以通过调用函数background来更改背景。现在所有功能都可以正常工作了。谢谢