簡體   English   中英

使用Turtle繪制形狀

[英]Drawing Shapes Using Turtle

我正在嘗試使用Python / Turtle實現如下結果:

http://i.imgur.com/2eoAB.png

我畫了油漆不均勻的正方形,但我的意思是使它們均勻。 取決於用戶輸入,正方形也可以是任何形狀(例如,多邊形為5)。

到目前為止,這是我的代碼:

import turtle
import time
import random

print ("This program draws shapes based on the number you enter in a uniform pattern.")
num_str = input("Enter the side number of the shape you want to draw: ")
if num_str.isdigit():
    squares = int(num_str)

angle = 180 - 180*(squares-2)/squares

turtle.color(random.random(),random.random(), random.random())
turtle.begin_fill()

count = 0
x = -80
y = -80
turtle.setpos(x,y)
turtle.down()

while count < 8:
    x += 50
    y += 50
    turtle.goto(x,y)
    for i in range(squares):
        count += 1
        turtle.forward(20)
        turtle.left(angle)
        turtle.forward(20)      
        print (turtle.pos())

turtle.end_fill()

time.sleep(15)
turtle.bye()

這就是我得到的:

http://i.imgur.com/7hAje.png

我得到的錯誤是:我怎么能打印出總共8個形狀,而不是僅打印2個形狀,盡管由於計數+ = 1 <8而使循環重復8次?

我以為循環會通過每次加50、50來改變x和y的位置,然后我會對其進行調整以給出正確的坐標以形成所需的形狀,但是它甚至不會顯示全部8個?

我花了一些時間重新配置代碼,但我沒有想過永遠反復試驗,而是想出了一些幫助,謝謝。

我正在使用Python 3.2.3

如果選擇顯示具有四個邊的形狀,則只繪制兩個形狀。 這是因為您要為每種形狀 每側增加一次循環計數器。

這不是執行循環的好方法,很少需要使用計數器,如果需要,可以使用- enumerate

您想嘗試這樣的事情。

numshapes = 8
for x in range(numshapes):
  x += 50
  y += 50
  turtle.goto(x,y)
  for i in range(squares):
      turtle.forward(20)
      turtle.left(angle)
      turtle.forward(20)      
      print (turtle.pos())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM