2011-10-25 174 views
0

好吧我嘗試使用turtlegraphics繪製同心正方形,但我無法弄清楚如何讓這些正方形在一側不能互相接觸。任何幫助?使用TurtleGraphics繪製同心正方形

http://i51.tinypic.com/34gly7b.png

public static void main(String[] args) { 
     int i,A,M; 
     A=0; 
     M=0; 



     StandardPen pen = new StandardPen(); 
      //RainbowPen pen = new RainbowPen(); 
      //WigglePen pen = new WigglePen(); 
      //WiggleRainbowPen pen = new WiggleRainbowPen(); 

      pen.setColor(Color.green); 
      pen.setWidth(5); 


    for (i=1;i<=4;i++){ 
      A=A+20; 
      M=M+40; 
      pen.up(); 
      pen.move(A,A); 

      pen.down(); 

      pen.turn(45); 
      pen.move(M); 
      pen.turn(90); 
      pen.move(M); 
      pen.turn(90); 
      pen.move(M); 

      pen.turn(90); 
      pen.move(M); 

      pen.up(); 
+0

你可以只移動了新的廣場上pen.up後的起始位置()。有很多方法可以做到這一點,比如pen.up,move(M/10)。 – weberik

回答

0

嘗試這種「龜僞代碼」轉換爲Java代碼

reset 
$startX = 100 
$startY = 100 
$length = 20 


gox $startX 
goy $startY 

turnleft 45 

repeat(4) { 

    repeat(4) { 
     # this draws the actual square 
     forward $length 
     turnleft 90 
    } 

    # move half the square size away 
    penup 
    turnright 90 
    forward $length/2 
    turnright 90 
    forward $length/2 
    turnright 180 
    pendown 

    #define the size for the next square 
    $length = $length * 2 
} 
+0

加上pen.move(M/4);把它扔掉更多...這是它給了我後添加http://i55.tinypic.com/23iez3n.png – user1013437

+0

嘗試將它放在最後一個「pen.turn(90);」之前,與此同時,我將嘗試用更熟悉 – weberik

+0

的語言來重現這一點,但這種語言無法正常工作,我修改了代碼以適應老師的要求,但仍然存在相同的問題。生病編輯上面的代碼 – user1013437