Módulo de dibujo-tortuga de Python (1)

Recientemente entré en contacto con Turtle, un módulo de dibujo de Python, que es muy interesante y fácil. Tomó 2 horas aprender sobre las funciones relacionadas. El enlace de documentación de este módulo es el siguiente.

https://docs.python.org/3/library/turtle.html

En pocas palabras, puede imaginar el tablero de dibujo como un eje de coordenadas XY, el origen está en el medio, una tortuga corre en el gráfico de coordenadas y sus trazas de rastreo son los gráficos que generamos. Podemos crear varios patrones interesantes controlando la posición, dirección, color, gráficos básicos y dirección de movimiento de las coordenadas.

Por ejemplo, planeo generar una ruta aleatoria y usar un color diferente para cada dirección de cambio.


from turtle import Turtle, Screen
import random
import colorgram
import turtle as t

#设置颜色类型为RGB格式,默认为字符串
t.colormode(255)
tim = Turtle()

#设置一个随机的方向选择
options=[0,90,180,270]

#生成随机的RGB元组
def randomcolor():

    r= random.randint(0,255)
    g= random.randint(0,255)
    b = random.randint(0, 255)
    return  (r,g,b)

tim.speed('fastest')

#随机选择一个方向,选择一个颜色,线条加粗
def randomwalk():

    tim.setheading(random.choice(options))
    tim.color(randomcolor())
    tim.speed('fast')
    tim.pensize(10)
    tim.forward(20)

for i in range(100):
    randomwalk()

screen = Screen()
screen.exitonclick()

Módulo de dibujo-tortuga de Python (1)

Para otro ejemplo, planeo generar un caleidoscopio, que en realidad es dibujar un círculo. Cada vez que dibujo un círculo, desplazo un cierto ángulo y genero algunos colores al azar.

from turtle import Turtle, Screen
import random
import colorgram
import turtle as t

#设定颜色模式,不然默认是字符串的格式,而不是RGB的格式
t.colormode(255)
tim = Turtle()

#生成一个随机的RGB的元组

def randomcolor():
    r= random.randint(0,255)
    g= random.randint(0,255)
    b = random.randint(0, 255)
    return  (r,g,b)

tim.speed('fastest')

def draw_spirograph(size):
    for i in range(int(360/size)):

        tim.circle(100)
        tim.color(randomcolor())
        print(tim.heading())

                #每次画圆都偏移一下方向
        current_heading=tim.heading()
        tim.setheading(current_heading+size)
tim.circle(100)

draw_spirograph(10)

#下面的部分是生成一个画板界面,点击退出,不然默认一闪而过就没有了

screen = Screen()
screen.exitonclick()

El efecto es el siguiente

Módulo de dibujo-tortuga de Python (1)

Por último, mire un ejemplo, cómo generar un mapa de puntos de 10X10. Hablando de imágenes iniciales, el artista más famoso es Damie Hirst. ¿Pueden sus imágenes de puntos venderse por millones de dólares? ? ! ! La obra de arte es aproximadamente la misma que la siguiente.

Módulo de dibujo-tortuga de Python (1)

Luego, usando nuestro módulo de tortuga, podemos simular uno fácilmente. Primero descargue una obra maestra de Damie y conviértala a formato jpg. A través del módulo colorgram, podemos obtener los colores RGB de Damie y guardarlo como una lista. Luego podemos obtener los colores aleatoriamente para generar nuestro propio mapa de puntos.

from turtle import Turtle, Screen
import random
import colorgram
import turtle as t

#设置颜色模式为RGB
t.colormode(255)
tim = Turtle()

#从一个现有的jpg图获取主要的色彩

colors=colorgram.extract('spot.jpg',20)

colorlist=[]
for color in colors:
    # print(color.rgb)
    colorlist.append((color.rgb.r,color.rgb.g,color.rgb.b))

print(colorlist)

#隐藏海龟的小图标和画图的路径,设置爬行速度为最快
tim.penup()
tim.hideturtle()
tim.speed('fastest')

#因为海龟默认是从原点(图正中央)开始爬,如果内容太多的话可能会爬出边界,所以我先把他的坐标往左下方挪一挪

tim.setheading(225)
tim.forward(300)
tim.setheading(0)
currentlocation=tim.position()
print(currentlocation)

#简单的双重循环,每次生成一个随机颜色的点,唯一注意的就是海龟爬的方向和坐标了

for i in range(10):
    for j in range(10):
        tim.dot(30,random.choice(colorlist))
        tim.forward(40)

    tim.setposition((currentlocation[0]),40*(i+1)+currentlocation[1])

#这个screen的对象保证画板需要手动关闭

screen = Screen()
screen.exitonclick()

El efecto final es el siguiente

Módulo de dibujo-tortuga de Python (1)

Supongo que te gusta

Origin blog.51cto.com/beanxyz/2551238
Recomendado
Clasificación