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

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

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

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()

    推荐阅读
  • 杨紫高甜片段(杨紫两部小甜剧都是跟初恋结婚)

    杨紫肖战主演的《余生请多指教》马上要大结局了,想想还怪舍不得。市面上也有很多这类的甜宠偶像剧,但成为爆款的却没有几部,杨紫就占了两部。不过林之校与佟年这两个角色是有差异的,林之校比较外向,甚至社牛,而佟年则是温柔听话,性格偏内向的那种,同样都是杨紫出演,但呈现的效果却是极为不同。《余生》官微还放出了几张顾魏跟林之校拍的婚纱照,两人高调秀婚戒,搞怪合拍,隔着屏幕都要被酸死啦。

  • 哈市中小学分班(双胞胎想分一个班)

    据了解,学校严格执行均衡分班办法,采用“两先、一抽、不调”的分班方式,先公布新生名单和教师名单,由家长代表抽确定各班班主任教师,班主任教师已经确定,不准调换学生和班级。群力实验二小226名学生需要分成6个班级,老师通过电脑抽选,选出6名家长监督员,负责全程监督分班过程,再通过电脑抽选,选出1名电脑分班按键员和1名监督员。所有抽选的家长监督员和家长按键员都需要签字确定,确保分班过程公平、公正。

  • 旅行用英语怎么说(旅行的英语是什么)

    旅行的英语是什么旅行的英语:travel,英[ˈtrævl]美[ˈtrævl]旅行社破产,我们的钱都赔了进去Welostourmoneywhenthetravelcompanywentbust这家旅行社不过是毒品交易。

  • 武汉地标千年黄鹤楼(难得一见的黄鹤楼)

    难得一见的黄鹤楼​武汉地处长江中下游平原,江汉平原东部,是国家区域中心城市(华中)、副省级市和湖北省省会武汉的历史可以追溯到6000年前的新石器时代,市郊黄陂境内的张西湾古城遗址为4300年前古人类生活的重要遗存,盘。

  • 巾帼勇当排头兵战疫一线绽芳华(奋斗百年路启航新征程)

    在2020年庚子新春武汉抗击疫情最前线,面对来势汹汹的新冠肺炎疫情,武汉协和医院呼吸内科党支部26名党员,危急时刻挺身而出,第一时间成立党员防控疫情突击队,奔赴进驻各大隔离病房,成为抗击新冠疫情的突击战队。作为首批接诊新冠肺炎患者的医师,呼吸内科党支部书记周琼第一时间进驻隔离病房。支部委员、护士程梦是第一批主动请缨到武汉市红会医院的党员。

  • 和平精英雪橇怎么启动(启动后怎么玩)

    和平精英雪橇怎么启动和平精英圣诞雪橇要启动很简单,只要两名玩家同时上车就可以启动。但是玩家要注意的是,圣诞雪橇只会出现在P城中间的大圣诞树底下。因为圣诞雪橇的行动路线是固定,因此玩家在雪橇上面是无法操作,而且雪橇没有车顶,所以无法挡子弹。因此玩家最好是将P城中的敌人都解决完了再去找圣诞雪橇,这样在雪橇上面浪的时候也不用担心会被人偷袭。

  • 岱岳区开元中学初一新生入学须知(岱岳区开元中学条件)

    按“七步洗手法”洗漱。体温在正常范围,家长填写体温检测登记表,学生携带登记表上学。若超过37.3℃,不得前往学校,居家观察或到医院就诊,向班主任请假并主动说明情况。洗手用肥皂或洗手液,按七步洗手法洗消,用流水洗净,洗完手要及时关水龙头。未进行体温检测的学生在宿舍内等候,不准擅自离开宿舍。由宿管员在宿舍楼道维持秩序,提醒学生保持安全距离离开宿舍。

  • 三元材料生产原理(走进含能材料大家族系列专题稿件)

    一千多年前诞生在我国的黑火药是最早的含能材料,13世纪之后,黑火药伴随着成吉思汗的铁蹄,经由阿拉伯国家传入欧洲世界。在之后的数百年间,黑火药逐渐成长为战争的主要攻击手段。在第二次世界大战结束前,TNT一直是综合性能最好的炸药。黑索金是当前常规武器装药的主要原材料之一,与TNT共同成为了绝大部分混合炸药和民用炸药的重要组分。关键点在于两种物质的反应速率显著不同,即功率不同。

  • 绵阳城镇职工医保账户里的钱怎么用 绵阳城镇职工医保账户里的钱怎么用啊

    而统筹基金主要用于参保人员的看病报销,比如住院、异地转诊、门诊慢性病或特殊病等医疗费用的报销。城镇职工医保缴费方式:城镇职工医保参保缴费由个人和单位共同缴纳,其中个人缴纳部分的全部计入个人账户,单位缴纳的部分中有一部分划入个人账户,一部分进入统筹基金。

  • 人生朋友哲理句子(经典哲理语录集锦)

    交友对年轻人来说,朋友是提醒他们不犯错误的谋士;对老年人来说,朋友是补充他们衰竭的体力、照顾他们生活困难的助手;对成年人来说,朋友是辅佐他们完成宏伟事业的臂膀。——西塞罗在不幸中,有用的朋友更为必要;在幸运中,高尚的朋友更为必要。——亚里士多德夏日里燕子随处可见,可一到寒冬,它们便远远离去。……——卡耐基选择朋友应当像选择阅读的书籍一样,一要谨慎,二要控制数量。