Processing 加工-如何在制作另一个形状时防止形状消失
我目前拥有的代码允许我使用Processing 加工-如何在制作另一个形状时防止形状消失,processing,Processing,我目前拥有的代码允许我使用mousePressed()和mouseDragged()创建一个矩形。但是,当我开始创建另一个矩形时,我之前创建的矩形消失了 我只是想让我的程序创建一个矩形,而不是让它在创建另一个矩形时消失 我还想让它与draw()函数中的background()一起工作,因为每当我从程序中删除background()或将其放入setup()中时拖动鼠标时,我无法减小形状的宽度和高度,它会在形状内部创建小的矩形轨迹,这在拖动鼠标时会发生 这是我的密码 int a, b, c, d =
mousePressed()
和mouseDragged()
创建一个矩形。但是,当我开始创建另一个矩形时,我之前创建的矩形消失了
我只是想让我的程序创建一个矩形,而不是让它在创建另一个矩形时消失
我还想让它与draw()
函数中的background()
一起工作,因为每当我从程序中删除background()
或将其放入setup()中时
拖动鼠标时,我无法减小形状的宽度和高度,它会在形状内部创建小的矩形轨迹,这在拖动鼠标时会发生
这是我的密码
int a, b, c, d = 0;
void setup() {
size(1000, 800);
}
void draw() {
background(204);
stroke(0);
strokeWeight(2);
noFill();
rect(a, b, c, d);
}
void mousePressed() {
a=mouseX;
b=mouseY;
}
void mouseDragged() {
c=mouseX-a;
d=mouseY-b;
rect(a, b, c, d);
}
听起来你可以使用另一个图层来绘制(不清除它)。 幸运的是,这很容易使用: 如果你决定玩一个绘图工具,你可能想看看
int a, b, c, d = 0;
PGraphics layer;
void setup() {
size(1000, 800);
stroke(0);
strokeWeight(2);
noFill();
// make new drawing layer
layer = createGraphics(width, height);
// use drawing functions within beginDraw() / endDraw()
layer.beginDraw();
layer.stroke(0);
layer.background(204);
layer.strokeWeight(2);
layer.noFill();
layer.endDraw();
}
void draw() {
background(204);
// render background layer
image(layer,0,0);
// draw foreground;
rect(a, b, c, d);
}
void mousePressed() {
a=mouseX;
b=mouseY;
}
void mouseDragged() {
c=mouseX-a;
d=mouseY-b;
// draw preview
rect(a, b, c, d);
}
void mouseReleased(){
// render final shape into background layer
layer.beginDraw();
layer.rect(a, b, c, d);
layer.endDraw();
}