高考考试网
当前位置: 首页 高考资讯

Python的turtle库使用-画出好看的图形(Python的turtle库使用-画出好看的图形)

时间:2023-06-09 作者: 小编 阅读量: 3 栏目名: 高考资讯

turtle画一个彩色螺旋图形importturtleturtle.shape('turtle')turtle.speed(9)#画笔速度turtle.pensize(2)#画笔的宽度turtle.bgcolor("black")#画布背景色colors=["red","yellow","green","blue"]#定义画笔线色foriinrange(255):#循环一次画一条线turtle.f

turtle画一个彩色螺旋图形

import turtleturtle.shape('turtle')turtle.speed(9)# 画笔速度turtle.pensize(2)# 画笔的宽度turtle.bgcolor("black")# 画布背景色colors = ["red","yellow","green","blue"]# 定义画笔线色for i in range(255):# 循环一次 画一条线turtle.forward(2 * i)# 向当前方向前进n像素turtle.color(colors[i % 4])# 根据求余 调整画笔线色turtle.left(91)# 向左旋转91度turtle.done()

仙人球

import turtleturtle.shape('turtle')turtle.color('orange', 'green')turtle.begin_fill()while True:turtle.forward(200)turtle.left(170)if abs(turtle.pos()) < 1:breakturtle.end_fill()turtle.done()

国旗

import turtleturtle.shape('turtle')turtle.screensize(2000, 2000, 'white')# 设置画布大小turtle.speed(9)# 绘制旗面turtle.pencolor('red')# pu()turtle.goto(-300, -200)turtle.pd()turtle.fillcolor('red')turtle.begin_fill()for i in range(0, 2):turtle.fd(600)turtle.lt(90)turtle.fd(400)turtle.lt(90)turtle.end_fill()# 绘制大五角星turtle.pu()turtle.pencolor('yellow')turtle.goto(-260, 120)turtle.pd()turtle.fillcolor('yellow')turtle.begin_fill()for i in range(0, 5):turtle.fd(113.137)# 大星一划的边长turtle.rt(144)turtle.end_fill()# 绘制四个小五角星list1 = [(-100, 160), (-60, 120), (-60, 60), (-100, 20)]# 四个五角星的中心坐标list2 = [31.98, 8.13, -15.59, -38.66]# 相对角度0的后退1.111需要左转的角度for j in range(0, 4):turtle.seth(0)# 这是龟头角度为0turtle.pu()turtle.goto(list1[j])# 定位到五角星中心turtle.lt(list2[j])# 旋转角度,以背向指向大五角星的角尖turtle.bk(20)# 从五角星中心到指向大五角星的角尖(龟倒着爬)退一个小圆半径turtle.lt(18)# 五角星的半角角度turtle.pd()turtle.begin_fill()for i in range(0, 5):turtle.fd(113.137 / 3)# 小星一划的边长turtle.rt(144)turtle.end_fill()turtle.pu()turtle.ht()turtle.done()

玫瑰花

import turtleimport timeturtle.shape('turtle')turtle.speed(5)# 设置初始位置turtle.penup()turtle.left(90)turtle.fd(200)turtle.pendown()turtle.right(90)# 花蕊turtle.fillcolor("red")turtle.begin_fill()turtle.circle(10,180)turtle.circle(25,110)turtle.left(50)turtle.circle(60,45)turtle.circle(20,170)turtle.right(24)turtle.fd(30)turtle.left(10)turtle.circle(30,110)turtle.fd(20)turtle.left(40)turtle.circle(90,70)turtle.circle(30,150)turtle.right(30)turtle.fd(15)turtle.circle(80,90)turtle.left(15)turtle.fd(45)turtle.right(165)turtle.fd(20)turtle.left(155)turtle.circle(150,80)turtle.left(50)turtle.circle(150,90)turtle.end_fill()# 花瓣1turtle.left(150)turtle.circle(-90,70)turtle.left(20)turtle.circle(75,105)turtle.setheading(60)turtle.circle(80,98)turtle.circle(-90,40)# 花瓣2turtle.left(180)turtle.circle(90,40)turtle.circle(-80,98)turtle.setheading(-83)# 叶子1turtle.fd(30)turtle.left(90)turtle.fd(25)turtle.left(45)turtle.fillcolor("green")turtle.begin_fill()turtle.circle(-80,90)turtle.right(90)turtle.circle(-80,90)turtle.end_fill()turtle.right(135)turtle.fd(60)turtle.left(180)turtle.fd(85)turtle.left(90)turtle.fd(80)# 叶子2turtle.right(90)turtle.right(45)turtle.fillcolor("green")turtle.begin_fill()turtle.circle(80,90)turtle.left(90)turtle.circle(80,90)turtle.end_fill()turtle.left(135)turtle.fd(60)turtle.left(180)turtle.fd(60)turtle.right(90)turtle.circle(200,60)turtle.done()

彩色树

import turtleturtle.shape('turtle')# 设置色彩模式是RGB:turtle.colormode(255)turtle.lt(90)lv = 14l = 120s = 45turtle.width(lv)# 初始化RGB颜色:r = 0g = 0b = 0turtle.pencolor(r, g, b)turtle.penup()turtle.bk(l)turtle.pendown()turtle.fd(l)def draw_tree(l, level):global r, g, b# save the current pen widthw = turtle.width()# narrow the pen widthturtle.width(w * 3.0 / 4.0)# set color:r = r1g = g2b = b3turtle.pencolor(r % 200, g % 200, b % 200)l = 3.0 / 4.0 * lturtle.lt(s)turtle.fd(l)if level < lv:draw_tree(l, level1)turtle.bk(l)turtle.rt(2 * s)turtle.fd(l)if level < lv:draw_tree(l, level1)turtle.bk(l)turtle.lt(s)# restore the previous pen widthturtle.width(w)turtle.speed("fastest")draw_tree(l, 4)turtle.done()

随机樱花树

# 每次运行 树的形状是随机的import turtle as Timport randomimport time# 画樱花的躯干(60,t)def Tree(branch, t):time.sleep(0.0005)if branch > 3:if 8 <= branch <= 12:if random.randint(0, 2) == 0:t.color('snow')# 白else:t.color('lightcoral')# 淡珊瑚色t.pensize(branch / 3)elif branch < 8:if random.randint(0, 1) == 0:t.color('snow')else:t.color('lightcoral')# 淡珊瑚色t.pensize(branch / 2)else:t.color('sienna')# 赭(zhě)色t.pensize(branch / 10)# 6t.forward(branch)a = 1.5 * random.random()t.right(20 * a)b = 1.5 * random.random()Tree(branch - 10 * b, t)t.left(40 * a)Tree(branch - 10 * b, t)t.right(20 * a)t.up()t.backward(branch)t.down()# 掉落的花瓣def Petal(m, t):for i in range(m):a = 200 - 400 * random.random()b = 10 - 20 * random.random()t.up()t.forward(b)t.left(90)t.forward(a)t.down()t.color('lightcoral')# 淡珊瑚色t.circle(1)t.up()t.backward(a)t.right(90)t.backward(b)# 绘图区域t = T.Turtle()# 画布大小w = T.Screen()t.shape('turtle')# t.hideturtle()# 隐藏画笔t.getscreen().tracer(5, 0)w.screensize(bg='wheat')# wheat小麦t.left(90)t.up()t.backward(150)t.down()t.color('sienna')# 画樱花的躯干Tree(60, t)# 掉落的花瓣Petal(200, t)w.exitonclick()T.done()

爱情树

import randomimport turtledef love(x, y):# 在(x,y)处画爱心lalalalv = turtle.Turtle()lv.hideturtle()lv.up()lv.goto(x, y)# 定位到(x,y)def curvemove():# 画圆弧for i in range(20):lv.right(10)lv.forward(2)lv.color('red', 'pink')lv.speed(0)lv.pensize(1)# 开始画爱心lalalalv.down()lv.begin_fill()lv.left(140)lv.forward(22)curvemove()lv.left(120)curvemove()lv.forward(22)lv.write("{}".format("I Love You!"), font=("Arial", 10, "normal"), align="center")lv.left(140)# 画完复位lv.end_fill()def tree(branchLen, t):if branchLen > 5:# 剩余树枝太少要结束递归if branchLen < 20:# 如果树枝剩余长度较短则变绿t.color("green")t.pensize(random.uniform((branchLen5) / 4 - 2, (branchLen6) / 45))t.down()t.forward(branchLen)love(t.xcor(), t.ycor())# 传输现在turtle的坐标t.up()t.backward(branchLen)t.color("brown")returnt.pensize(random.uniform((branchLen5) / 4 - 2, (branchLen6) / 45))t.down()t.forward(branchLen)# 以下递归ang = random.uniform(15, 45)t.right(ang)tree(branchLen - random.uniform(12, 16), t)# 随机决定减小长度t.left(2 * ang)tree(branchLen - random.uniform(12, 16), t)# 随机决定减小长度t.right(ang)t.up()t.backward(branchLen)def Fonts():t.penup()t.goto(-300, -300)t.pencolor('red')t.write("我爱你!^_^", font=('方正行黑简体', 30, 'normal'))myWin = turtle.Screen()t = turtle.Turtle()t.hideturtle()t.speed(0)t.left(90)t.up()t.backward(200)t.down()t.color("brown")t.pensize(32)t.forward(60)tree(100, t)Fonts()myWin.exitonclick()

哆啦A梦

import turtledef flyTo(x, y):turtle.penup()turtle.goto(x, y)turtle.pendown()def drawEye():turtle.tracer(False)a = 2.5for i in range(120):if 0 <= i < 30 or 60 <= i < 90:a -= 0.05else:a= 0.05turtle.left(3)turtle.fd(a)turtle.tracer(True)def beard():""" 画胡子, 一共六根"""# 左边第一根胡子flyTo(-37, 135)turtle.seth(165)turtle.fd(60)# 左边第二根胡子flyTo(-37, 125)turtle.seth(180)turtle.fd(60)# 左边第三根胡子flyTo(-37, 115)turtle.seth(193)turtle.fd(60)# 右边第一根胡子flyTo(37, 135)turtle.seth(15)turtle.fd(60)# 右边第二根胡子flyTo(37, 125)turtle.seth(0)turtle.fd(60)# 右边第三根胡子flyTo(37, 115)turtle.seth(-13)turtle.fd(60)def drawRedScarf():""" 画围巾"""turtle.fillcolor("red")# 填充颜色turtle.begin_fill()turtle.seth(0)# 朝向右turtle.fd(200)# 前进10个单位turtle.circle(-5, 90)turtle.fd(10)turtle.circle(-5, 90)turtle.fd(207)turtle.circle(-5, 90)turtle.fd(10)turtle.circle(-5, 90)turtle.end_fill()def drawMouse():flyTo(5, 148)turtle.seth(270)turtle.fd(100)turtle.seth(0)turtle.circle(120, 50)turtle.seth(230)turtle.circle(-120, 100)def drawRedNose():flyTo(-10, 158)turtle.fillcolor("red")# 填充颜色turtle.begin_fill()turtle.circle(20)turtle.end_fill()def drawBlackdrawEye():turtle.seth(0)flyTo(-20, 195)turtle.fillcolor("#000000")# 填充颜色turtle.begin_fill()turtle.circle(13)turtle.end_fill()turtle.pensize(6)flyTo(20, 205)turtle.seth(75)turtle.circle(-10, 150)turtle.pensize(3)flyTo(-17, 200)turtle.seth(0)turtle.fillcolor("#ffffff")turtle.begin_fill()turtle.circle(5)turtle.end_fill()flyTo(0, 0)def drawFace():turtle.forward(183)# 前行183个单位turtle.fillcolor("white")# 填充颜色为白色turtle.begin_fill()# 开始填充turtle.left(45)# 左转45度turtle.circle(120, 100)# 右边那半边脸turtle.seth(90)# 朝向向上drawEye()# 画右眼睛turtle.seth(180)# 朝向左turtle.penup()# 抬笔turtle.fd(60)# 前行60turtle.pendown()# 落笔turtle.seth(90)# 朝向上drawEye()# 画左眼睛turtle.penup()# 抬笔turtle.seth(180)# 朝向左turtle.fd(64)# 前进64turtle.pendown()# 落笔turtle.seth(215)# 修改朝向turtle.circle(120, 100)# 左边那半边脸turtle.end_fill()#def drawHead():""" 画了一个被切掉下半部分的圆"""turtle.penup()# 抬笔turtle.circle(150, 40)# 画圆, 半径150,圆周角40turtle.pendown()# 落笔turtle.fillcolor("#00a0de")# 填充色turtle.begin_fill()# 开始填充turtle.circle(150, 280)# 画圆,半径150, 圆周角280turtle.end_fill()def drawAll():drawHead()drawRedScarf()drawFace()drawRedNose()drawMouse()beard()flyTo(0, 0)turtle.seth(0)turtle.penup()turtle.circle(150, 50)turtle.pendown()turtle.seth(30)turtle.fd(40)turtle.seth(70)turtle.circle(-30, 270)turtle.fillcolor("#00a0de")turtle.begin_fill()turtle.seth(230)turtle.fd(80)turtle.seth(90)turtle.circle(1000, 1)turtle.seth(-89)turtle.circle(-1000, 10)turtle.seth(180)turtle.fd(70)turtle.seth(90)turtle.circle(30, 180)turtle.seth(180)turtle.fd(70)turtle.seth(100)turtle.circle(-1000, 9)turtle.seth(-86)turtle.circle(1000, 2)turtle.seth(230)turtle.fd(40)turtle.circle(-30, 230)turtle.seth(45)turtle.fd(81)turtle.seth(0)turtle.fd(203)turtle.circle(5, 90)turtle.fd(10)turtle.circle(5, 90)turtle.fd(7)turtle.seth(40)turtle.circle(150, 10)turtle.seth(30)turtle.fd(40)turtle.end_fill()# 左手turtle.seth(70)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.circle(-30)turtle.end_fill()# 脚flyTo(103.74, -182.59)turtle.seth(0)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.fd(15)turtle.circle(-15, 180)turtle.fd(90)turtle.circle(-15, 180)turtle.fd(10)turtle.end_fill()flyTo(-96.26, -182.59)turtle.seth(180)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.fd(15)turtle.circle(15, 180)turtle.fd(90)turtle.circle(15, 180)turtle.fd(10)turtle.end_fill()# 右手flyTo(-133.97, -91.81)turtle.seth(50)turtle.fillcolor("#FFFFFF")turtle.begin_fill()turtle.circle(30)turtle.end_fill()# 口袋flyTo(-103.42, 15.09)turtle.seth(0)turtle.fd(38)turtle.seth(230)turtle.begin_fill()turtle.circle(90, 260)turtle.end_fill()flyTo(5, -40)turtle.seth(0)turtle.fd(70)turtle.seth(-90)turtle.circle(-70, 180)turtle.seth(0)turtle.fd(70)# 铃铛flyTo(-103.42, 15.09)turtle.fd(90)turtle.seth(70)turtle.fillcolor("#ffd200")turtle.begin_fill()turtle.circle(-20)turtle.end_fill()turtle.seth(170)turtle.fillcolor("#ffd200")turtle.begin_fill()turtle.circle(-2, 180)turtle.seth(10)turtle.circle(-100, 22)turtle.circle(-2, 180)turtle.seth(180 - 10)turtle.circle(100, 22)turtle.end_fill()flyTo(-13.42, 15.09)turtle.seth(250)turtle.circle(20, 110)turtle.seth(90)turtle.fd(15)turtle.dot(10)flyTo(0, -150)drawBlackdrawEye()def main():turtle.screensize(800, 6000, "#F0F0F0")turtle.pensize(3)turtle.speed(9)drawAll()if __name__ == "__main__":main()turtle.mainloop()

时钟

import turtlefrom datetime import *# 抬起画笔,向前运动一段距离放下def Skip(step):turtle.penup()turtle.forward(step)turtle.pendown()def mkHand(name, length):# 注册Turtle形状,建立表针Turtleturtle.reset()Skip(-length * 0.1)# 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。turtle.begin_poly()turtle.forward(length * 1.1)# 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。turtle.end_poly()# 返回最后记录的多边形。handForm = turtle.get_poly()turtle.register_shape(name, handForm)def Init():global secHand, minHand, hurHand, printer# 重置Turtle指向北turtle.mode("logo")# 建立三个表针Turtle并初始化mkHand("secHand", 135)mkHand("minHand", 125)mkHand("hurHand", 90)secHand = turtle.Turtle()secHand.shape("secHand")minHand = turtle.Turtle()minHand.shape("minHand")hurHand = turtle.Turtle()hurHand.shape("hurHand")for hand in secHand, minHand, hurHand:hand.shapesize(1, 1, 3)hand.pencolor('orange')hand.speed(0)# 建立输出文字Turtleprinter = turtle.Turtle()printer.pencolor('red')# 隐藏画笔的turtle形状printer.hideturtle()printer.penup()def SetupClock(radius):# 建立表的外框turtle.reset()turtle.pencolor('blue')turtle.pensize(7)for i in range(60):Skip(radius)if i % 5 == 0:turtle.forward(20)Skip(-radius - 20)Skip(radius20)if i == 0:turtle.write(int(12), align="center", font=("Courier", 14, "bold"))elif i == 30:Skip(25)turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))Skip(-25)elif (i == 25 or i == 35):Skip(20)turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))Skip(-20)else:turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))Skip(-radius - 20)else:turtle.dot(5)Skip(-radius)turtle.right(6)def Week(t):week = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]return week[t.weekday()]def Date(t):y = t.yearm = t.monthd = t.dayreturn "%s-%d-%d" % (y, m, d)def Tick():# 绘制表针的动态显示t = datetime.today()second = t.secondt.microsecond * 0.000001minute = t.minutesecond / 60.0hour = t.hourminute / 60.0secHand.setheading(6 * second)minHand.setheading(6 * minute)hurHand.setheading(30 * hour)turtle.tracer(False)printer.forward(65)printer.write(Week(t), align="center", font=("Courier", 14, "bold"))printer.back(130)printer.write(Date(t), align="center", font=("Courier", 14, "bold"))printer.home()turtle.tracer(True)# 100ms后继续调用tickturtle.ontimer(Tick, 100)def main():# 打开/关闭龟动画,并为更新图纸设置延迟。turtle.tracer(False)Init()SetupClock(160)turtle.tracer(True)Tick()turtle.done()if __name__ == "__main__":main()

    推荐阅读
  • 吃梅子减肥到底是不是真的能减肥(朋友圈里推荐的吃)

    “月瘦10斤,不反弹,无任何副作用。”据刘小姐介绍,在用药期间,她不仅月经紊乱,还经常出现口干舌燥、头晕目眩的症状。后经医生检查证实,刘小姐因服用此类产品导致内分泌失调。而她的体重,在用药期间减了5公斤,停药后却又反弹了10公斤。10月份,来自东阳的53岁的王女士也因轻信朋友圈滥吃减肥药,险致肝衰竭。虽然也有减肥计划,但她却表示自己并不会购买。如果长期服用,会对身体造成损害。

  • 广东腊鱼最简单的腌制方法(广东腊鱼怎么腌制)

    广东腊鱼最简单的腌制方法?准备材料:白雕酒1瓶、酱油1瓶、盐1包、白糖1斤、罗非鱼20斤;,我来为大家讲解一下关于广东腊鱼最简单的腌制方法?跟着小编一起来看一看吧!

  • 写出75个aabc式的词(正确选项为B的51道词语题)

    正确答案为选项B的盲选正确率为23.72%。

  • 河南哪个学院应用化工专业好(2022年河南化学工程与工艺专业专升本仅5所院校)

    某高校图书馆河南化学工程与工艺专业有哪些就业方向?河南专升本的考试形式为专业课加公共英语的形式,其中该专业的专业考试科目为高等数学即采用公共英语加高等数学的形式。近些年河南化学工程与工艺专业考试的成绩是多少?化学工程与工艺专业的省控线波动还是挺大的,在19年、20年、2021年的省控线分别是144、108、128分,对2022年来说是不确定的,但是一句老话说“打铁还需自身硬”,不断的磨练和提高自己总是没有错的。

  • agm三防手机发展史(户外运动野外生存必备)

    据悉,AGMG1系列提供两款机型,包括AGMG1和AGMG1Pro,提供8GB256GB存储版本,售价分别为3699元和4999元,目前该机已于10月31日晚20:00开售。外观方面,AGMG1采用了全新的一体化机身设计,在屏幕的细节处理方面采用了阶梯式点胶工艺,有了这项工艺的加持之后,可以有效避免液体从屏幕进入手机内部。拥有810H认证1.5米抗摔,AGMG1进水通道只有3处,在接口处,则采用了拜耳防水塞,实现了结构防水。

  • 幼儿园教师纸杯游戏(长幼教育集团总园)

    《指南》中提到“儿童有着与生俱来的好奇心和探究欲望。好奇、好问、好探索是幼儿的年龄特点。善于发现和保护幼儿的好奇心,充分利用自然和实际生活机会,引导幼儿通过观察、比较、操作、实验等方法,学会发现问题、分析问题和解决问题,帮助幼儿不断积累经验,并运用于新的学习活动,形成受益终身的学习态度和能力。纸杯是生活中常见的材料,也是区域活动中投入的非常普通的低结构材料。班级美术区很多纸杯一直无人问津,有一天琪

  • 止咳梨水怎么熬 止咳梨水怎么熬去皮吗

    2、另外一种方式,把梨子切成块放进锅内,加适量的水,连同少许的冰糖一起煮,大概煮10到20分钟,把糖水和梨子一起吃掉,也有止咳化痰之功效。

  • 2022湛江民办小升初摇号结果怎么查(湛江小升初摇号结果查询)

    2022湛江民办小升初摇号结果怎么查根据湛江市教育局、湛江市招生委员会《关于做好2022年民办义务教育招生入学工作的通知》,7月20日上午,2022年湛江市民办义务教育学校七年级招生电脑摇号工作在公证机构人员、人大代表、政协委员、新闻媒体和家长代表的全程监督下顺利完成。电脑摇号邀请公证机构人员、人大代表、政协委员、新闻媒体和学生家长代表全程监督,摇号结果在湛江市教育局官网公布。

  • 穿书玄幻虐心完结小说(18本已完结DND封神流西幻小说)

    大家好,这里是宅胖看书,今天给大家介绍的是DND封神流西幻小说,主角由凡物崛起,登临神座,牧养众生。主角穿越伪DND的游戏异界,自带系统面板,可以打怪升级,而且继承了原身的执念,立誓要保护可爱的妹妹。未来的动荡之年,诸神被打落凡间,恶魔与魔鬼横行,强者层出不穷,厮杀与混乱遍布多元宇宙。接着他因为意外穿越到了异界,成为了一名底层的德鲁伊学徒。

  • 肫是什么意思(肫是什么意思生肖)

    肫是一个多音字,有zhūn和chún两种读法。读zhūn时,指带有食物的鸟胃。读chún时有三种意思:古代祭祀所用牲畜后体的一部分;古同“纯”,意为整体、全;精细致密。汉字,又称中文、中国字,别称方块字,是汉语的记录符号,属于表意文字的词素音节文字。世界上最古老的文字之一,已有六千多年的历史。在形体上逐渐由图形变为笔画,象形变为象征,复杂变为简单;在造字原则上从表形、表意到形声。