运用python和turtle编程程序,画淄博师范高等专科学校的校徽,要详细的程序步骤
import cv2
import turtle as t
img = cv2.imread('1.png')
shape = img.shape
t.colormode(255)
t.tracer(4000)
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()
一般是这么画的,不失真,不过这个校徽图案相对简单,可以考虑纯手绘
import turtle as t
import cv2
img = cv2.imread('logo.png')
shape = img.shape #计算图像像素
t.colormode(255) #设置颜色模式
t.tracer(False) #关闭轨迹
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()
只有几分像,待解决的是红色多边形的描边坐标要费很多时间,还有文字输出的旋转问题,网上暂时也没找到解决方案
import turtle as t
def Circle(x,y,R):
t.setheading(0)
t.up()
t.goto(0,y-R)
t.down()
t.circle(R,360)
t.speed(0)
t.pensize(2)
Circle(0,0,300)
t.left(90)
t.pensize(1)
Circle(0,0,230)
s1 = '淄博师范高等专科学校'
s2 = ' '*9+'ZIBO NORMAL COLLEGE'
t.up()
t.goto(-280,20)
t.left(90)
for i in s1:
t.write(i, font=('隶书',25,'normal'))
t.rt(180/len(s1))
t.fd(84)
t.up()
t.goto(-245,-50)
t.setheading(-90)
for i in s2:
t.write(i, font=('隶书',22,'normal'))
t.lt(4.8)
t.fd(20)
t.color('red')
t.goto(-140,-280)
t.write("Z", font=('微软雅黑',330,'normal'))
t.hideturtle()
t.mainloop()
这种方法是用OpenCV画的,跟原来的一模一样。
首先得在终端运行这行脚本(安装OpenCV):
pip install opencv-python
然后再用Python运行这些代码:
import turtle as t
import cv2
img = cv2.imread('logo.png')
shape = img.shape
t.colormode(255)
t.tracer(False)
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()
望采纳。
先画个圆,定位
其它慢慢画