---------------turtle源码集合---------------
Python教程43:海龟画图turtle画小樱魔法阵
Python教程42:海龟画图turtle画海绵宝宝
Python教程41:海龟画图turtle画蜡笔小新
Python教程40:使用turtle画一只杰瑞
Python教程39:使用turtle画美国队长盾牌
Python教程38:使用turtle画动态粒子爱心+文字爱心
Python教程37:使用turtle画一个戴帽子的皮卡丘
Python教程36:海龟画图turtle写春联
Python源码35:海龟画图turtle画中国结
Python源码31:海龟画图turtle画七道彩虹
Python源码30:海龟画图turtle画紫色的小熊
Python源码29:海龟画图turtle画太极图
Python源码28:海龟画图turtle画熊猫
Python源码27:海龟画图turtle画动态圆舞曲
Python源码26:海龟画图turtle画向日葵
Python源码25:海龟画图turtle画小猪佩奇
Python源码24:使用海龟画图turtle画滑板
Python源码23:使用海龟画图turtle画小狗狗
Python源码22:使用海龟画图turtle画今天日期
Python源码21:使用海龟画图turtle画太阳,云朵,房子,绿树
Python源码20:使用海龟画图turtle画一个会动的星空
Python源码19:海龟画图turtle画螺旋的彩色的逐渐放大的文字
Python源码18:使用海龟画图turtle画捂脸表情
Python源码17:使用海龟画图turtle画五星红旗
Python源码16:使用海龟画图turtle画会动的时钟
Python源码15:使用海龟画图turtle画小黄人
Python源码14:使用海龟画图turtle画我的城堡
Python源码分享13:使用海龟画图turtle画一个会眨眼的皮卡丘
Python源码分享12:使用turtle画彩色六边形
Python源码分享11:使用海龟画图turtle画航天火箭
Python源码分享10:使用海龟画图turtle画哆啦A梦
Python源代码分享:02海龟画图五角星
Python源代码分享:03画一个奥运五环图
Python源代码分享:05使用turtle模块绘制一个彩色螺旋图案
Python源代码分享:07画满天繁星
Python源码分享08:使用turtle画一朵玫瑰花
Python源码分享10:使用海龟画图turtle画哆啦A梦
Python源码分享11:使用海龟画图turtle画航天火箭
Python源码分享12:使用turtle画彩色六边形
# 引用海龟库以及随机库
import turtle as t
import random
import timelight = t.Turtle(visible=False)
wind = t.Turtle(visible=False)def canvas(size_x=1200, size_y=900): # 设置画布,有默认值t.setup(size_x, size_y)# 设置线的颜色以及size
def pencil(size=5, color="black"):t.pensize(size)t.pencolor(color)def sun(): # 绘制太阳light.pensize(5)light.pencolor("black")sec = int(time.time())t.penup() # 画红色点t.goto(-530, 310)t.pendown()t.dot(100, "red")for i in range(1, 19): # 阳光效果light.penup()light.goto(-530, 310)light.seth(i * 20)light.forward(55)light.pendown()if (i + sec) % 2 == 1:light.forward(15)else:light.forward(7)def plant(): # 绘制天空以及大地t.penup() # 每个绘制函数开头都写了这个,防止龟龟绘制另外的图像移动时留下痕迹length = 900 * 0.318 # 将画布的纵向黄金分割t.home()t.goto(600, -450)t.fillcolor("#DAA520") # 分割填充大地t.begin_fill()t.left(90)t.forward(length)t.left(90)t.forward(1200)t.left(90)t.forward(length)t.left(90)t.forward(1200)t.end_fill()t.home() # 填充天空t.goto(600, length - 450)t.fillcolor("#B0C4DE")t.begin_fill()t.left(90)t.forward(900 - length)t.left(90)t.forward(1200)t.left(90)t.forward(900 - length)t.left(90)t.forward(1200)t.end_fill()def butterfly(pos_x=0, pos_y=0): # 绘制蝴蝶,这里会随机生成位置以及蝴蝶大小、颜色light.penup()light.goto(pos_x, pos_y)light.pendown()light.pensize(2)light.seth(45)color = ["#FF00FF", "#87CEFA", "#0000EE", "#FF4500", "#00FF00", "#00E5EE", "#FFFAFA"] # 一个颜色表,以及size表size = [6, 7, 8, 9, 10, 11, 12]tep_size = random.choice(size)light.fillcolor(random.choice(color))light.begin_fill()light.circle(tep_size, 270) # 绘制翅膀light.right(135)light.pensize(3)light.forward(tep_size / 2)light.right(45)light.forward(tep_size / 2)light.back(tep_size / 2)light.left(70)light.forward(tep_size / 2)light.back(tep_size / 2)light.right(25)light.pensize(4)light.back(2.05 * tep_size)light.seth(-90)light.pensize(2)light.circle(tep_size, -180)light.pensize(4)light.left(90)light.forward(tep_size * 2)light.back(tep_size * 2.5)light.end_fill()def botany(pos_x=0, pos_y=0, direction=0, flower=1, bend=10): # 植物函数,绘制向日葵,向日葵会迎风倒,效果很到位light.pensize(3)light.pencolor("black")light.penup()light.goto(pos_x, pos_y)light.pendown()light.left(90)light.fillcolor("#00CD00")light.begin_fill()light.circle(50, 90) # 绘制叶片light.left(90)light.circle(50, 90)light.penup()light.goto(pos_x, pos_y)light.pendown()light.seth(-90)light.pensize(6)light.forward(50)light.back(50)light.pensize(3)light.circle(50, -90)light.right(90)light.circle(50, -90)light.end_fill()if flower: # 判断是否有花,这里默认有花light.penup()light.goto(pos_x, pos_y)light.pendown()light.pensize(4)if direction:light.seth(80) # 绘制秆light.circle(130 - 5 * bend, 70 + 5 * bend, None)else:light.seth(-80)light.circle(130 - 5 * bend, -70 - 5 * bend, None)light.right(180)tep_x, tep_y = light.xcor(), light.ycor()light.forward(13)light.right(30)for i in range(6): # 绘制花瓣light.fillcolor("#FFD700")light.begin_fill()light.circle(15, 300)light.left(120)light.end_fill()light.goto(tep_x, tep_y)light.dot(36, "#FFB90F")def cloud(pos_x=0, pos_y=0, size=20): # 绘制云pos = int(time.time())pos %= 50light.penup() # 云没有要边框,所以没有pendownlight.goto(pos*8+pos_x, pos_y)light.fillcolor("#E6E6FA")light.begin_fill()light.seth(-80)light.circle(size, 110)for i in range(1, 6): # 绘制下半部分light.right(100)light.circle(size, 110)light.left(120)for i in range(1, 7): # 绘制上半部分,上边进行了六次循环,但是之前就进行了一次绘制,这里有七次循环light.right(100)light.circle(size, 110)light.end_fill()# def draw(x, y): # 这里是之前调试用的拖拽函数响应函数,不需使用
# t.goto(x, y)
# print(t.xcor(), t.ycor())# def person(pos_x=0, pos_y=0): # 绘制人的函数,效果很拉跨,舍弃
# t.penup()
# t.goto(pos_x, pos_y)
# t.pendown()
#
# t.dot(44, "#FFDEAD")
# t.right(90)
# t.penup()
# t.forward(25)
# t.right(15)
# t.pendown()
# pencil(10)
# t.forward(50)
#
# t.right(35)
# t.forward(50)
# t.back(50)
# t.left(90)
# t.forward(27)
# t.right(110)
# t.forward(23)
#
# t.penup()
# t.goto(pos_x, pos_y)
# t.seth(-90)
# t.forward(25)
# t.right(15)
# t.forward(20)
# t.right(60)
# t.pendown()
# t.forward(50)
# tep_x1, tep_y1 = t.xcor(), t.ycor()
# t.back(50)
# t.right(160)
# t.forward(30)
# t.seth(90)
# t.forward(20)
#
# t.penup()
# t.goto(tep_x1, tep_y1)
# t.seth(-145)
# pencil(6)
# t.pendown()
# t.forward(50)
# t.right(90)
# t.forward(20)
# t.right(90)
# t.forward(15)
# t.right(90)
# t.forward(20)
# t.left(90)
# t.forward(150)def star(pos_x=0, pos_y=0, size=10): # 绘制星星函数color = ["#FFFFE0", "#FFFF00"]light.penup()light.goto(pos_x, pos_y)angle = random.randint(0, 180)light.seth(angle)light.fillcolor(random.choice(color))light.begin_fill()for i in range(5): # 这个144度是查的资料light.right(144)light.forward(size)light.end_fill()def wind(): # 风函数,让图像看起来更有感觉,就是一条直线,加两个圆pos = int(time.time())pos %= 5color = ["#D3D3D3", "#CDCDB4"]tep_color = random.choice(color)light.penup()light.goto(pos*80-1000, 50)light.seth(0)light.pendown()light.pensize(5)light.pencolor(tep_color)light.forward(500)light.pensize(4)light.pencolor(tep_color)light.left(45)light.circle(50, 180)light.pensize(3)light.pencolor(tep_color)light.circle(30, 90)tep_color = random.choice(color)light.penup() # 画圈圈light.goto(pos*140-1040, 80)light.seth(0)light.pendown()light.pensize(5)light.pencolor(tep_color)light.forward(400)light.pensize(4)light.pencolor(tep_color)light.left(45)light.circle(40, 180)light.pensize(3)light.pencolor(tep_color)light.circle(25, 90)def lie(): # 这个函数是表达我对python的喜爱t.penup()t.goto(0, -360)pencil(0, "#FFA54F")t.write("节日快乐", align='center', font=('arial', 75, 'normal'))t.hideturtle()def dynamic():light.clear()sun()star(200, 200) # 右上角有星星注意观察 0.0star(260, 230, 15)star(180, 300)star(300, 100, 15)star(500, 290)star(420, 310, 15)star(300, 200)star(260, 230, 15)star(350, 352)star(500, 180, 15)star(560, 352)cloud(-530, 280, 20)cloud(300, 250, 30)wind()bend = int(time.time())bend %= 5bend += 14light.seth(-100-bend) # 初始向日葵叶片角度for i in range(14): # 生成向日葵if i % 2 == 0:botany(-520 + i * 50, -132, 0, 1, bend - i)botany(-340 + i * 50, -132, 0, 1, bend - i)else:botany(-430 + i * 50, -142, 0, 1, bend - i)botany(-230 + i * 50, -142, 0, 1, bend - i)pos_x = [45, -96, -100, 410, 300, 580, 230, -50, -400, -320, -212]pos_y = [45, -96, -100, 0, 20, 30, 29, -50, -20, -43, 10]for i in range(6): # 生成蝴蝶,这里便于观察到结果,蝴蝶有点大butterfly(random.choice(pos_x), random.choice(pos_y))t.ontimer(dynamic, 1000)def piant(): # 这里是将绘制全放在这个函数里,让main看起来简洁t.tracer(False)t.delay(0)canvas()pencil()plant()lie()dynamic()if __name__ == "__main__":piant()# t.ondrag(draw, btn=1, add=None)t.mainloop()
完毕!!感谢您的收看
----------★★历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具