2017-06-01 40 views
1

我要讓裝載機,像這樣的:Python的裝載機龜

Loader

這是到目前爲止我的代碼:

import turtle, random    # random for colour choice, turtle for design 
turtle.hideturtle()     # don't show arrow 

turtle.pensize(10)     # thick pen 
turtle.colormode(255)    # RGB colour format 
x = 0        # loop 
while (x < 10):      # loop 
    x = x + 1      # loop 
    r = random.randint(0,255)  # choose random r 
    g = random.randint(0,255)  # choose random g 
    b = random.randint(0,255)  # choose random b 
    turtle.color((r,g,b))   # new colour every loop 
    turtle.circle(100)    # draw circle 

如何使用Python和龜作出它類似於上面的那個?我知道這個問題不是很好,但我在其他地方找不到任何有關這方面的信息。我不想插入一個圖像到海龜。我想用圖形創建它。

任何幫助將不勝感激。

回答

1

我的代碼和你的例子之間的妥協。其背後的想法是,它的速度更快和更簡單的使用計時器事件紡自定義龜光標,而不是試圖畫點什麼:

from turtle import Turtle, Screen 

STEP = -12 # should be divisor of 360 
GAP = 45 # in degrees 
PEN_SIZE = 4 # emulated pen width 
RADIUS = 24 

def await_loading(degrees=[0], color=[1.0, 0.0, 0.0]): # intentionally dangerous default values 

    if degrees[0] == 0: 
     color.append(color.pop(0)) 
     loading.color(color) 

    loading.tilt(STEP) 

    degrees[0] = (degrees[0] + STEP) % 360 

    screen.ontimer(await_loading, 10) 

loading = Turtle() 
loading.speed('fastest') 
loading.backward(RADIUS) 
loading.right(90) 

loading.begin_poly() 
loading.circle(RADIUS, 360 - GAP, 60) 
loading.left(90) 
loading.forward(PEN_SIZE) 
loading.right(90) 
loading.circle(RADIUS - PEN_SIZE, GAP - 360, 60) 
loading.end_poly() 

screen = Screen() 
screen.addshape('loading', loading.get_poly()) 

loading.reset() 
loading.shape('loading') 

await_loading() 

screen.exitonclick() 

我沒有整齊地打包成一個功能,因爲我不知道什麼樣的事件會啓動並停止它 - 我只是想顯示圖形是可能的。

+0

謝謝。它運作良好。 – Sank6