Limiting draw() to run a limited amount of times!

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);
  }
}

2 Likes