2010-12-02 74 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); 

创建的一个海龟时间。现在我已经确定乌龟的Y坐标是50,X坐标是50 + K * 10。这是因为这条线开始于X坐标50并停在X坐标250.

现在我想要的是基于创建的海龟的数量(用户输入这个),我希望海龟是均匀分布在这条线上。怎么做?它与我写的线条有关,也可能是k值或10.如图所示,线条显示在图片中(见下面的链接),它的红线表示海龟的数量是在这里创建的。

回答

3

Devide由海龟数量的窗口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 2010-12-02 19:41:52