Just changed i and j place haha Don’t know if it’s the best solution, but hey, it works!
Edit: Did the auto-format thing :3
PVector v1, v2;
//C = Comprimento, A = Altura
int qc1, qc2;
float c1 = 6, a1 = 6, c2 = 2, a2=2;
ArrayList<PVector> listc1 = new ArrayList();
ArrayList<PVector> listc2 = new ArrayList();
int fase = 0, cfase1 = 0, cfase2 = 0, cfase3 = 0;
float minDist = -100;
int linhaI, linhaF;
void setup() {
size(200, 200);
background(255);
//Quantidade de Circulos Principais
qc1 = 5;
//Quantidade de Circulos Secundarios
qc2 = 10;
}
void draw() {
//Desenhar os Circulos Principais
if (fase==0) {
v1 = new PVector(random(c1, width - c1), random(a1, height - a1));
ellipse(v1.x, v1.y, c1, a1);
listc1.add(new PVector(v1.x, v1.y));
if (cfase1 >= qc1) {
fase++;
}
cfase1++;
}
//Desenhar os Circulos Secundarios
else if (fase==1) {
fill(255);
v2 = new PVector(random(c2, width - c2), random(a2, height - a2));
ellipse(v2.x, v2.y, c2, a2);
listc2.add(new PVector(v2.x, v2.y));
if (cfase2 >= qc2) {
fase++;
}
cfase2++;
}
//Desenhar as Linhas
else if (fase==2) {
for (int j = 0; j < listc2.size(); j++) {
minDist = 10000000;
for (int i = 0; i < listc1.size(); i++) {
PVector vi = listc1.get(i);
PVector vj = listc2.get(j);
if (vi.dist(vj) < minDist) {
minDist = vi.dist(vj);
linhaI = i;
linhaF = j;
}
}
PVector vi = listc1.get(linhaI);
PVector vj = listc2.get(linhaF);
stroke(0);
line(vi.x, vi.y, vj.x, vj.y);
}
fase++;
cfase3++;
}
//Calcular a menor distancia
else if (fase==3) {
int total1 = listc1.size();
int total2 = listc2.size();
println("O numero total de circulos em c1: " + total1);
println("O numero total de circulos em c2: " + total2);
}
}