使用tu的Python加载程序

2024-04-23 10:50:43 发布

您现在位置: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和turtle使其与上面的类似?我知道这个问题不是很好,但是我在网上找不到任何关于这个问题的信息。我不想在Turtle中插入图像。我想以图形化的方式创建它。在

任何帮助都将不胜感激。在


Tags: 代码importloopforshowrandomdesignrandint
1条回答
网友
1楼 · 发布于 2024-04-23 10:50:43

我在你的代码和你的例子之间的妥协。其背后的想法是,使用计时器事件旋转自定义turtle光标比尝试绘制某些内容更快、更简单:

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()

我没有把它整齐地打包成一个函数,因为我不知道什么样的事件会开始和停止,我只想展示图形是可能的。在

相关问题 更多 >