2010-12-02 4 views
0

나는이 코드 조각에 의해 생성 된 창에서 줄에 객체를 만드는 오전 :자바 - 라인에 물건을 확산 균등

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

한 거북이에서를 작성합니다 시간. 지금 나는 거북이가 50의 Y 좌표와 50 + k * 10의 X 좌표를 가질 것이라고 정했다. 이것은 X 코디네이트 50에서 시작하여 250의 X 코디네이트에서 멈추기 때문입니다.

이제 원하는 거북이의 수를 기준으로 (사용자가 입력 한 것), 나는 거북이가되고 싶습니다. 이 줄에 고르게 퍼졌다. 그것을하는 방법? 내가 작성한 줄과 아마도 k 값 또는 10과 관련이 있습니다.

줄은 그림에 표시되어 있습니다 (아래 링크 참조). 빨간색 줄은 거북이의 수를 나타냅니다.

답변

3

으로 나눔 거북이의 수에 의해 윈도우의 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); 
} 
+0

우수함! 그게 :) 감사합니다! – Jake

관련 문제