2011-10-25 139 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