python turtle库的几个小demo
Posted widows
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python turtle库的几个小demo相关的知识,希望对你有一定的参考价值。
一、先上图
一个同切圆和五角星
上代码
import turtle #同切圆 turtle.pensize(2) turtle.circle(10) turtle.circle(40) turtle.circle(80) turtle.circle(160) #五角星 from turtle import * color(‘red‘,‘yellow‘) begin_fill() for i in range(5): fd(200) rt(144) end_fill() done()
至于turtle库的用法,这里有教程链接 python绘图turtle库详解 https://blog.csdn.net/zengxiantao1994/article/details/76588580
二、小猪佩奇
# coding:utf-8 import turtle as t # 绘制小猪佩奇 # ======================================= t.pensize(4) t.hideturtle() t.colormode(255) t.color((255, 155, 192), "pink") t.setup(840, 500) t.speed(10) # 鼻子 t.pu() t.goto(-100,100) t.pd() t.seth(-30) t.begin_fill() a = 0.4 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a+0.08 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a-0.08 t.lt(3) t.fd(a) t.end_fill() t.pu() t.seth(90) t.fd(25) t.seth(0) t.fd(10) t.pd() t.pencolor(255, 155, 192) t.seth(10) t.begin_fill() t.circle(5) t.color(160, 82, 45) t.end_fill() t.pu() t.seth(0) t.fd(20) t.pd() t.pencolor(255, 155, 192) t.seth(10) t.begin_fill() t.circle(5) t.color(160, 82, 45) t.end_fill() # 头 t.color((255, 155, 192), "pink") t.pu() t.seth(90) t.fd(41) t.seth(0) t.fd(0) t.pd() t.begin_fill() t.seth(180) t.circle(300, -30) t.circle(100, -60) t.circle(80, -100) t.circle(150, -20) t.circle(60, -95) t.seth(161) t.circle(-300, 15) t.pu() t.goto(-100, 100) t.pd() t.seth(-30) a = 0.4 for i in range(60): if 0 <= i < 30 or 60 <= i <90: a = a+0.08 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a-0.08 t.lt(3) t.fd(a) t.end_fill() # 耳朵 t.color((255, 155, 192), "pink") t.pu() t.seth(90) t.fd(-7) t.seth(0) t.fd(70) t.pd() t.begin_fill() t.seth(100) t.circle(-50, 50) t.circle(-10, 120) t.circle(-50, 54) t.end_fill() t.pu() t.seth(90) t.fd(-12) t.seth(0) t.fd(30) t.pd() t.begin_fill() t.seth(100) t.circle(-50, 50) t.circle(-10, 120) t.circle(-50, 56) t.end_fill() #眼睛 t.color((255, 155, 192), "white") t.pu() t.seth(90) t.fd(-20) t.seth(0) t.fd(-95) t.pd() t.begin_fill() t.circle(15) t.end_fill() t.color("black") t.pu() t.seth(90) t.fd(12) t.seth(0) t.fd(-3) t.pd() t.begin_fill() t.circle(3) t.end_fill() t.color((255, 155, 192), "white") t.pu() t.seth(90) t.fd(-25) t.seth(0) t.fd(40) t.pd() t.begin_fill() t.circle(15) t.end_fill() t.color("black") t.pu() t.seth(90) t.fd(12) t.seth(0) t.fd(-3) t.pd() t.begin_fill() t.circle(3) t.end_fill() # 腮 t.color((255, 155, 192)) t.pu() t.seth(90) t.fd(-95) t.seth(0) t.fd(65) t.pd() t.begin_fill() t.circle(30) t.end_fill() # 嘴 t.color(239, 69, 19) t.pu() t.seth(90) t.fd(15) t.seth(0) t.fd(-100) t.pd() t.seth(-80) t.circle(30, 40) t.circle(40, 80) # 身体 t.color("red", (255, 99, 71)) t.pu() t.seth(90) t.fd(-20) t.seth(0) t.fd(-78) t.pd() t.begin_fill() t.seth(-130) t.circle(100,10) t.circle(300,30) t.seth(0) t.fd(230) t.seth(90) t.circle(300,30) t.circle(100,3) t.color((255,155,192),(255,100,100)) t.seth(-135) t.circle(-80,63) t.circle(-150,24) t.end_fill() # 手 t.color((255,155,192)) t.pu() t.seth(90) t.fd(-40) t.seth(0) t.fd(-27) t.pd() t.seth(-160) t.circle(300,15) t.pu() t.seth(90) t.fd(15) t.seth(0) t.fd(0) t.pd() t.seth(-10) t.circle(-20,90) t.pu() t.seth(90) t.fd(30) t.seth(0) t.fd(237) t.pd() t.seth(-20) t.circle(-300,15) t.pu() t.seth(90) t.fd(20) t.seth(0) t.fd(0) t.pd() t.seth(-170) t.circle(20,90) # 脚 t.pensize(10) t.color((240,128,128)) t.pu() t.seth(90) t.fd(-75) t.seth(0) t.fd(-180) t.pd() t.seth(-90) t.fd(40) t.seth(-180) t.color("black") t.pensize(15) t.fd(20) t.pensize(10) t.color((240, 128, 128)) t.pu() t.seth(90) t.fd(40) t.seth(0) t.fd(90) t.pd() t.seth(-90) t.fd(40) t.seth(-180) t.color("black") t.pensize(15) t.fd(20) # 尾巴 t.pensize(4) t.color((255, 155, 192)) t.pu() t.seth(90) t.fd(70) t.seth(0) t.fd(95) t.pd() t.seth(0) t.circle(70, 20) t.circle(10, 330) t.circle(70, 30) t.done()
三、七段数码管日期显示
#七段数码管绘制 import turtle import time def drawGap(): #控制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(draw):#绘制单段数码管 drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.rt(90) def drawDigit(digit):#根据数字绘制七段数码管 drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,6,8] else drawLine(False) turtle.lt(90) drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False) turtle.lt(180) turtle.penup() turtle.fd(20) def drawDate(date): #获得需要输出的数字 %Y-%m=%d+ turtle.pencolor(‘red‘) for i in date: if i==‘-‘: turtle.write(‘年‘,font=(‘Arial‘,24,‘normal‘)) turtle.pencolor(‘yellow‘) turtle.fd(40) elif i==‘=‘: turtle.write(‘月‘,font=(‘Arial‘,24,‘normal‘)) turtle.pencolor(‘green‘) turtle.fd(40) elif i==‘+‘: turtle.write(‘日‘,font=(‘Arial‘,24,‘normal‘)) else: drawDigit(eval(i)) def main(): turtle.setup(800,350,200,200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate(time.strftime(‘%Y-%m=%d+‘,time.gmtime())) turtle.hideturtle() turtle.done() main()
以上三个小demo,都是用turtle库绘制完成的,turtle绘制方面,只有你想不到,没有他做不到的。
最后推荐一个地址python绘画作品展示的地址,https://www.python123.io/index/turtle_drawing 里面有许多优秀的python 作品
以上是关于python turtle库的几个小demo的主要内容,如果未能解决你的问题,请参考以下文章
turtle库的几个案例进阶,代码可直接运行(python经典编程案例)
turtle库的几个简单案例,代码可直接运行(python经典编程案例)