Java 试图得到在一定范围内产生商的除数

Java 试图得到在一定范围内产生商的除数,java,math,processing,Java,Math,Processing,这是我正在进行的可视化。我想把一个矩形分成N等分。我希望这些部分的宽度为,比如说(最小1px,最大1.5px),这取决于矩形的宽度,我希望这个除法以0的余数结束(所以我没有比其余部分大的部分) 我尝试过实现模:但我不确定这是正确的方法。有什么想法吗 //Generates coordinates within each line. for (int j = 0; j < line_coordinates.length; j++) { //Positions start of lin

这是我正在进行的可视化。我想把一个矩形分成N等分。我希望这些部分的宽度为,比如说(最小1px,最大1.5px),这取决于矩形的宽度,我希望这个除法以0的余数结束(所以我没有比其余部分大的部分)

我尝试过实现模:但我不确定这是正确的方法。有什么想法吗

//Generates coordinates within each line.
for (int j = 0; j < line_coordinates.length; j++) { 

  //Positions start of line draw on random X coordinate.
  float xv = component_x1 + (j * (component_length / line_coordinates.length+1));
  float yv = line_height;

  //Defines available with for each item in a component.
  float item_availablewidth = component_length / line_coordinates.length+1;

  //Creates vector with X coordinate and Y noise affected coordinate.
  line_coordinates[j] = new PVector(xv, y); 

  rectMode(CENTER);
  noStroke();
  fill(232, 45, 34);     
  rect(line_coordinates[j].x,
       line_coordinates[j].y - (line_height / 2),
       item_availablewidth * item_randomwidthcoefficient,
       line_height);
  println("line_coordinates[j].x1", 
          line_coordinates[j].x - ((item_availablewidth * item_randomwidthcoefficient) / 2)); //This is where X starts.
  println("line_coordinates[j].x2",
          line_coordinates[j].x + ((item_availablewidth * item_randomwidthcoefficient) / 2)); //This is where X is supposed to end.

    //This is the first method I tried but I found out this separation needs to be dynamic.
    float drawnline_separation = 2;

    float drawnline_total = (item_availablewidth * item_randomwidthcoefficient) / drawnline_separation;
    println("drawnline_total", 
            drawnline_total);

    //For loop divides each item in vertical -axidrawable- lines separating them by a max 
    for (int l = 0; l <= drawnline_total; l++) {
      float drawnline_x = lerp(line_coordinates[j].x - ((item_availablewidth * item_randomwidthcoefficient) / 2),
                     line_coordinates[j].x + ((item_availablewidth * item_randomwidthcoefficient) / 2),
                     l/drawnline_total);
                     println("drawnline_x", drawnline_x);
      stroke(23);
      noFill();

      //Draws line.
      line(drawnline_x, 
           line_coordinates[j].y, 
           drawnline_x, 
           line_coordinates[j].y + 25 );

    }
 } 

//This is the print I am getting. 
line_coordinates[j].x1 346.42535 
line_coordinates[j].x2 353.44092 
drawnline_total 3.5077777 
drawnline_x 346.42535 
drawnline_x 348.42535 
drawnline_x 350.42535 
drawnline_x 352.42535
//在每条线内生成坐标。
对于(int j=0;j