2013-09-30 124 views
-5

我需要編寫的函數,使得在龜平行線和採用下列四個參數:繪製平行線與龜

  • 長度,即每行的長度
  • 代表,即行數來繪製
  • 分離,也就是平行線之間的距離

到目前爲止我得到這個:

import turtle as t 

def parallelLines(length, reps, separation): 
    t.fd(length) 

    t.penup() 

    t.goto(0, separation) 

    for i in reps: 
     return i 
+0

好了,你可以想想如何'在現實生活中做到這一點?暫時忽略Python。 – Ryan

+0

你會如何做它作爲一隻烏龜,因爲你的線條是非常直的,你的轉身是完全準確的? – Ryan

+0

繪製第一行X的長度,然後從第一行Y的長度開始向下移動並重復,直到我有我需要的許多代表 –

回答

0

您已經回答了自己的問題:

繪製的第一行X長度,再往下從 是第一線Y長度開始移動,並重復,直到我有但是許多代表我 需要

這翻譯成代碼是這樣:

goto start position 
for _ in reps: 
    pen down 
    move length to the right 
    pen up 
    move length to the left 
    move separation to the bottom 

現在你只需要填寫正確的調用你的烏龜API。

1

我建議改爲:

def parallel(): 
    turtle.forward(length) 
    turtle.rt(90) 
    turtle.pu() 
    turtle.forward(distanceyouwantbetweenthem) 
    turtle.rt(90) 
    turtle.forward(length) 
0

至今都是不完整的,不正確的和/或破給出的答案。我在下面有一個使用聲明的API並繪製平行線。

的OP沒有明確在線條應該出現相對於烏龜的位置,所以我與龜是在兩個維度中心點去:

import turtle 

STAMP_SIZE = 20 

def parallelLines(my_turtle, length, reps, separation): 
    separation += 1 # consider how separation 1 & 0 differ 

    my_stamp = my_turtle.clone() 
    my_stamp.shape('square') 
    my_stamp.shapesize(1/STAMP_SIZE, length/STAMP_SIZE, 0) 
    my_stamp.tilt(-90) 
    my_stamp.penup() 
    my_stamp.left(90) 
    my_stamp.backward((reps - 1) * separation/2) 

    for _ in range(reps): 
     my_stamp.stamp() 
     my_stamp.forward(separation) 

    my_stamp.hideturtle() 

turtle.pencolor('navy') 

parallelLines(turtle.getturtle(), 250, 15, 25) 

turtle.hideturtle() 
turtle.exitonclick()