Java - равномерно распределяя объекты по линии - PullRequest
0 голосов
/ 02 декабря 2010

Я создаю объекты на линии в окне, созданном этим фрагментом кода:

void createTurtles() {
     int nrTurtles = Keyboard.nextInt("Set amount of turtles: ");
     w = new GraphicsWindow(500, 300);
     drawLinez();
     for (int k = 1; k <= nrTurtles; k++) {
        Turtle t = new Turtle(w, 50, 50 + k*10);
        t.right(90);
        t.setSpeed(100);
        t.penDown();
        turtles.add(t);
     }
}

Эта кодовая строка:

        Turtle t = new Turtle(w, 50, 50 + k*10);

Создает одну черепаху за один раз.Прямо сейчас я установил, что у черепах будет координата Y 50, а координата X 50 + k * 10.Это потому, что линия начинается в координате X 50 и заканчивается в координате X 250.

Теперь я хочу, основываясь на количестве созданных черепах (пользователь вводит это), я хочу черепахравномерно распределяться по этой линии.Как это сделать?Это имеет отношение к строке, которую я написал, и, возможно, к значению k или 10.

Линия проиллюстрирована на рисунке (см. Ссылку ниже), ее красная линия, что количество черепах созданов.

1 Ответ

3 голосов
/ 02 декабря 2010

Разделите height - 100 окна на количество черепах, и у вас будет distanceBetweenTurles:

int nrTurtles = Keyboard.nextInt("Set amount of turtles: ");

int height = 300;
w = new GraphicsWindow(500, height);

drawLinez();

double distanceBetweenTurles = (height - 100.0) / nrTurtles;

for (int k = 1; k <= nrTurtles; k++) {
    Turtle t = new Turtle(w, 50, 50 + (int) (k * distanceBetweenTurtles));
    t.right(90);
    t.setSpeed(100);
    t.penDown();
    turtles.add(t);
}
...