Arrays 数组返回不一致性(p5js)

Arrays 数组返回不一致性(p5js),arrays,drawing,p5.js,Arrays,Drawing,P5.js,在绘图程序中,线坐标存储在一个数组中,以便可以重新绘制图形。有时,返回的图像不是完全完整的,并且在按下鼠标之前,行的各个部分都会丢失(在p5js中)。我不确定如何解决这个问题(对不起,我对这个有点陌生) 让lineCor=[]; 让状态=“帮助”; 设r,g,b; 设对称性=8; 让角度=360/对称; 函数设置(){ createCanvas(窗口宽度、窗口高度); 背景(220); r=50; g=0; b=0; } 函数绘图(){ 帮助屏幕(); 复印机(); } 函数copyDrawi

在绘图程序中,线坐标存储在一个数组中,以便可以重新绘制图形。有时,返回的图像不是完全完整的,并且在按下鼠标之前,行的各个部分都会丢失(在p5js中)。我不确定如何解决这个问题(对不起,我对这个有点陌生)

让lineCor=[];
让状态=“帮助”;
设r,g,b;
设对称性=8;
让角度=360/对称;
函数设置(){
createCanvas(窗口宽度、窗口高度);
背景(220);
r=50;
g=0;
b=0;
}
函数绘图(){
帮助屏幕();
复印机();
}
函数copyDrawing(){
如果(状态=“绘制”){
推();
角度模式(度);
平移(窗宽/2,窗高/2);
displayImg();
pop();
如果(按下鼠标){
设linePos={
x:mouseX-窗宽/2,
y:鼠标-窗高/2,
px:pmouseX-窗宽/2,
py:pmouseY-窗高/2,
};
lineCor.推送(linePos);
}
}
}
函数displayImg(){
行程(r、g、b);
for(设i=0;i0){
if(r<255){
r+=10;
} 
否则如果(g<255){
g+=10;
} 
否则如果(b<255){
b+=10;
}
}否则{
如果(r>0){
r-=10;
} 
else如果(g>0){
g-=10;
} 
如果(b>0),则为else{
b-=10;
}
}
}
函数帮助屏幕(){
如果(状态==“帮助”){
背景(160);
textAlign(居中,居中);
文本大小(窗口宽度*0.04);
文本(“欢迎使用此kaleidiscope绘图程序”,windowWidth/2,windowHeight/3);
文本大小(窗口宽度*0.015);
文本(“要更改颜色,请滚动鼠标滚轮。按“s”开始绘图。按“c”清除屏幕。按“h”返回此帮助屏幕。”,windowWidth/2,1.5*windowHeight/3);
}
}
//用于键绑定的命令
函数keyTyped(){
如果(键==“c”){
设置();
lineCor=[];
}
如果(键==“h”){
设置();
state=“help”;
}
如果(键==“s”){
设置();
state=“draw”;
}
}
问题在于:

for (let i = 0; i < symmetry; i++) {
  for (let n = 0; n < lineCor.length; n++) {
    rotate(angle);
    line(lineCor[n].x, lineCor[n].y, lineCor[n].px, lineCor[n].py);
    push();
    scale(1, -1);
    line(lineCor[n].x, lineCor[n].y, lineCor[n].px, lineCor[n].py);
    pop();
  }
}
问题在于:

for (let i = 0; i < symmetry; i++) {
  for (let n = 0; n < lineCor.length; n++) {
    rotate(angle);
    line(lineCor[n].x, lineCor[n].y, lineCor[n].px, lineCor[n].py);
    push();
    scale(1, -1);
    line(lineCor[n].x, lineCor[n].y, lineCor[n].px, lineCor[n].py);
    pop();
  }
}

我似乎无法重现这个错误。你会硼酸吗?什么时候行“丢失”?它是随机发生的吗?问题在于“帮助”和“抽取状态”之间的交互。理想情况下,如果未使用“清除”功能清除画布,则当您从带有说明的帮助屏幕切换回画布时,应重新绘制图形。但是,有时重绘的直线的线段未完全填充,除非再次单击鼠标左键。数组中的项似乎未被删除。此外,有时会复制图形,而有时会丢失段。若要复制错误,请启动绘图并按“h”键进入帮助屏幕。然后再次按“s”返回到应保存在阵列中的图形。您可能需要这样做几次,因为错误发生的时间不一致。我似乎无法重现错误。你会硼酸吗?什么时候行“丢失”?它是随机发生的吗?问题在于“帮助”和“抽取状态”之间的交互。理想情况下,如果未使用“清除”功能清除画布,则当您从带有说明的帮助屏幕切换回画布时,应重新绘制图形。但是,有时重绘的直线的线段未完全填充,除非再次单击鼠标左键。数组中的项似乎未被删除。此外,有时会复制图形,而有时会丢失段。若要复制错误,请启动绘图并按“h”键进入帮助屏幕。然后再次按“s”返回到应保存在阵列中的图形。您可能需要这样做几次,因为错误发生的时间不一致。非常感谢!我真的很感激。非常感谢!我真的很感激。