turtle绘图,学校的任务好复杂

img


想知道这个图里面的内容要怎么搞出来,插入图片不行,学校布置的人物😭

如果允许的话可以同时导入cv2模块和turtle模块,这样的话就可以实现在turtle画布上实现绘制图片

可以用任何图片读取软件读取图片,将图片转为点的矩阵,然后一个点一个点的绘制

import turtle as t
import cv2

img = cv2.imread('logo.png')
shape = img.shape
t.colormode(255)
t.tracer(2000)
t.penup()
t.goto(-shape[1]/2,shape[0]/2)
for i in range(shape[0]):
    t.pendown()
    for j in range(shape[1]):
        [b,g,r] = img[i][j]
        t.color((r,g,b))
        t.fd(1)
    t.penup()
    t.goto(-shape[1]/2,shape[0]/2-i)
    t.update()
t.done()

img

你先参照python的turtle库画一个简单swun校徽把能做的做了
https://blog.csdn.net/qq_42102190/article/details/99075709
不能做的把图片转换成Python Turtle绘图的py文件,然后把不会部分相关代码复制出来即可

from PIL import Image

f = open('test.py', 'w')

im = Image.open("1.jpg")
x, y = im.size
print(x, y)

f.write("import turtle\n")
f.write("canvasX = {}\n".format(x))
f.write("canvasY = {}\n".format(y))

f.write(
'''
def D(x, y):
    return x - canvasX // 2, - y + canvasY // 2

turtle.screensize(canvasX,canvasY, "white")
turtle.penup()
turtle.goto(D(0,0))
turtle.pendown()
turtle.pensize(1)
turtle.speed(0)
turtle.colormode(255)
turtle.delay(0)
turtle.tracer({},0)
turtle.hideturtle()
'''.format(x))

for y in range(im.size[1]):
    f.write("turtle.penup()\n")
    f.write("turtle.goto(D(0,{}))\n".format(y))
    f.write("turtle.pendown()\n")
    for x in range(im.size[0]):
        pix = im.getpixel((x, y))
        f.write("turtle.pencolor" + str(pix) + "\n")
        f.write("turtle.forward(1)\n")

f.write("turtle.done()\n")