Я хотел бы обновить фон окна, так как цель моей программы - соединить точки вместе. Однако каждый раз, когда создается новая последняя точка, исходная (первая) точка будет соединяться с новой последней точкой при удалении предыдущего соединения.
Я могу подключить исходную точку к последней точке. Однако предыдущая строка по-прежнему отображается в окне.
Я попытался обновить фон, вставив 'background (255)' в раздел 'void draw ()', чтобы он постоянно обновлялся после ', если(mousePressed == true) '
Однако он полностью сотрет ранее нарисованные объекты.
//set global variables
final int N_PARTITIONS = 10;
int PrevX = -1;
int PrevY = -1;
int count = 0;
int gridx = 0;
int gridy = 0;
int OriginalX;
int OriginalY;
PVector[] Vector = new PVector[1]; {
Vector[0] = new PVector();
}
//CREATING WINDOW SIZE
void setup() {
size(600, 360);
surface.setResizable(true);
background(255);
}
void mouseClicked() {
if(count == 0) {
Vector[0].x = mouseX;
Vector[0].y = mouseY;
}
count++;
CallEllipse();
if (PrevX != -1) {
line(PrevX, PrevY, mouseX, mouseY);
}
if (count >= 3) {
DrawLine();
}
PrevX = mouseX;
PrevY = mouseY;
PVector[] PrevLine = new PVector[1];
PrevLine[0] = new PVector();
PrevLine[0].x = PrevX;
PrevLine[0].y = PrevY;
}
void CallEllipse() {
ellipse(mouseX, mouseY, N_PARTITIONS, N_PARTITIONS);
}
void DrawLine() {
line(Vector[0].x, Vector[0].y, mouseX, mouseY);
}
void grid() {
while(gridx >= 0 & gridy >= 0) {
stroke(195);
line(gridx, 0, gridx, height);
line(0, gridy, width, gridy);
gridx += width/N_PARTITIONS;
gridy += height/N_PARTITIONS;
}
}
void draw() {
if (mousePressed == true) {
mouseClicked();
background(255);
}
}
Я хочу удалить предыдущую последнюю строку и новую линию для соединения с оригиналомточка и новая последняя точка.