使用turtle的Python加载器

标签 python loading turtle-graphics

我想制作一个加载程序,就像这样:

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 中。我想以图形方式创建它。

任何帮助将不胜感激。

最佳答案

我在您的代码和示例之间的妥协。其背后的想法是,使用计时器事件旋转自定义 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()

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

关于使用turtle的Python加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44306518/

相关文章:

python - Networkx:NetworkXException:节点列表包含随机 block 模型的重复项

c - 用C制作我自己的 turtle 图形,无法更改数组中元素的值

python - 这行代码使程序对重启功能无 react

python - 使用 nltk 改进人名的提取

python - PIL zip jpeg 解码器在运行时不工作,但在安装/自测试时工作

python - 在 Python Dataflow/Apache Beam 上启动 CloudSQL 代理

Python Turtle 等待按键

Python符号加载,覆盖控制台行

android - 使用 jPCT-AE 加载 3d 模型

php - 页面加载 GIF - 有人可以解释一下下面的答案吗?