[Módulo de Python] módulo de programación gráfica - tortuga

Turtle, también conocido como el renderizador de tortugas, es un módulo gráfico incorporado de Python.Utiliza tkinter para implementar la interfaz gráfica básica, por lo que el entorno de Python utilizado actualmente debe ser compatible con tkinter.

Turtle proporciona los componentes básicos del dibujo de tortugas en dos formas: orientado a objetos y orientado a procesos. Su uso puede realizar fácilmente el dibujo de gráficos. Tiene una buena combinación con varios software 3D, funciones potentes y fácil de usar. También se ha convertido en la elección de la programación de interés de Python.

El principio del dibujo de gráficos también es muy simple, los gráficos dibujados están representados por la trayectoria dejada por la pequeña tortuga moviéndose en el lienzo. Por lo tanto, el uso de Turtle Drawing le permite escribir programas que realizan repetidamente acciones simples para dibujar formas intrincadas y complejas.

Las API comúnmente utilizadas del módulo Turtle son las siguientes:

Si podemos dominar el significado y el uso de estas API de manera competente, básicamente podemos dibujar todo tipo de cosas como un estilo poderoso y sin restricciones.

Por ejemplo, dibuje un gráfico que parezca un virus:

# 颜色设置:参数1为画笔颜色,参数2为填充色
turtle.color('red', 'blue')
# 开始填充
turtle.begin_fill()
# 循环的前进200,再左转170,如果距画笔位置<1,则结束循环
while True:
    turtle.forward(200)
    turtle.left(170)
    if abs(turtle.pos()) < 1:
        break
# 结束填充
turtle.end_fill()
turtle.done()

Después de ejecutar el código anterior, el efecto gráfico final es el siguiente:

Para dibujar unos anillos olímpicos más sencillos, la idea es dibujar cinco círculos repetidamente. Por supuesto, primero debe escribir un método para dibujar repetidamente un círculo, de la siguiente manera:

def draw_circle(x, y, c):
    # 抬起画笔
    turtle.pu()
    # 画圆的开始位置
    turtle.goto(x, y)
    # 放下画笔
    turtle.pd()
    turtle.color(c)
    turtle.circle(40, 360)

Luego, simplemente configure diferentes coordenadas centrales y colores de anillo, de la siguiente manera:

# 设置画笔尺寸
turtle.pensize(3)
# 画五个圆环
draw_circle(0, 0, 'blue')
draw_circle(60, 0, 'black')
draw_circle(120, 0, 'red')
draw_circle(90, -30, 'green')
draw_circle(30, -30, 'yellow')
# 结束
turtle.done()

Después de ejecutar el código anterior, el efecto gráfico final es el siguiente:

Ahora debería poder apreciar el significado de la programación de pasatiempos. Mientras controle la trayectoria de caminar de "esta pequeña tortuga", puede dibujar cualquier gráfico, y este tipo de programación orientada a procesos también es simple y fácil de entender.

Aquí hay uno un poco más complicado, no es difícil dibujar el patrón de la bandera nacional, es dibujar el área de fondo rojo, y cinco estrellas amarillas de cinco puntas servirán.

Importar módulos dependientes:

from turtle import *
import time

El primer paso es dibujar el área de fondo rojo.

def draw_bg():
    speed(10)  # 控制画笔速度
    up()  # 抬笔
    goto(-200, 200)  # 跳到指定位置
    down()  # 落笔
    color("red", "red")  # 设置线条色和填充色
    begin_fill()
    forward(480)
    right(90)
    forward(320)
    left(90)
    backward(480)
    right(90)
    backward(320)
    end_fill()

El segundo paso es dibujar una gran estrella de cinco puntas.

def draw_big_star():
    up()
    forward(64)
    left(90)
    forward(32)
    down()
    # 画大五角星
    a = 96
    color("yellow", "yellow")
    begin_fill()
    for i in range(1, 6):
        forward(a)
        right(144)
        speed(2)
    end_fill()

El tercer paso es dibujar la primera estrella pequeña de cinco puntas.

def draw_first_small_star():
    up()
    forward(96)
    left(53)
    forward(36)
    # 第一个小五角星
    a = 32
    begin_fill()
    for i in range(1, 6):
        forward(a)
        right(144)
        speed(5)
    end_fill()

El cuarto paso, dibuja la segunda pequeña estrella de cinco puntas.

def draw_second_small_star():
    up()
    right(80)
    forward(42)
    left(55)

    # 第二个小五角星
    a = 32
    begin_fill()
    for i in range(1, 6):
        forward(a)
        right(144)
        speed(5)
    end_fill()

Paso cinco, dibuja la tercera estrella pequeña de cinco puntas

def draw_third_small_star():
    up()
    right(96)
    forward(32)

    # 第三个小五角星
    a = 32
    begin_fill()
    for i in range(1, 6):
        forward(a)
        right(144)
        speed(5)
    end_fill()

El sexto paso, dibuja la cuarta estrella pequeña de cinco puntas.

def draw_four_small_star():
    up()
    right(54)
    forward(45)
    right(30)

    # 最后一个小五角星
    a = 32
    begin_fill()
    for i in range(1, 6):
        forward(a)
        right(144)
        speed(2)
    end_fill()

Finalmente, ejecuta la prueba.

if __name__ == '__main__':
    draw_bg()
    draw_big_star()
    draw_first_small_star()
    draw_second_small_star()
    draw_third_small_star()
    draw_four_small_star()
    ht()
    time.sleep(10)

El efecto final dibujado es el siguiente:

Por supuesto, dibujar todo tipo de personajes de dibujos animados interesantes no es un problema, como Doraemon, Peppa Pig, Pikachu, etc.

Doraemon----> de la siguiente manera:

Pikachu ----> de la siguiente manera:

Si necesita estos códigos, se cargarán en mi Github más tarde ~

​​​​​​​​​​​​Referencias :

[La vida es corta, ¡aprende Python! La serie de módulos de Python se actualizará y documentará continuamente...]

Supongo que te gusta

Origin blog.csdn.net/qq_29119581/article/details/128088094
Recomendado
Clasificación