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

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

    推荐阅读
  • 剩菜可以在冰箱放多久(剩菜可以在冰箱放的时间)

    剩菜可以在冰箱放多久?接下来我们就一起去了解一下吧!剩菜冰冻可以放7天以上:如果剩菜实在是太多的话,那么就需要将它分多个碗装入,将它密封,再将它们分别放入冰箱中冷冻,每次吃的时候就拿出一份,千万不能反复加热食用,因为空气中的细菌很多,就会导致菜很容易变质。虽然冷冻会延长菜的保质期,但是也不是无限期的,所以最好在一周的时候全部吃完,因为冷冻时间越长,食物的营养价值就会大大降低。

  • 高适别董大经典诗句(诗词日历高适别董大二首)

    16Nov《别董大二首》是唐代诗人高适的组诗作品。或以为指董庭兰,当时有名的音乐家,在其兄弟中排名第一,故称“董大”。在这两首送别诗中,高适以开朗的胸襟,豪迈的语调把临别赠言说得激昂慷慨,鼓舞人心。天宝六年冬,高适与董庭兰会于睢阳,写了《别董大二首》。曾任刑部侍郎、散骑常侍,封渤海县侯,世称高常侍。作为著名边塞诗人,高适与岑参并称“高岑”,与岑参、王昌龄、王之涣合称“边塞四诗人”。

  • 魔兽争霸3魔幻海2怎么玩(魔幻海二单通攻略)

    魔兽争霸3魔幻海2怎么玩?魔幻海2是最近比较热门的一张RPG地图,很多玩家都入坑了这张地图,但是不清楚怎么开局怎么玩,下面小编就为大家带来魔兽争霸3魔幻海2新手攻略,一起来看看吧。进阶说明特殊属性:攻击间隔减少为百分比减少,除法计算。类似英雄联盟冷却缩减。基础攻击间隔减少为减法计算,直接减少。主动技能可被动触发,吃被动技能加成和主动技能加成中最高的一个。

  • 最好用的面膜排名前十(便宜又好的面膜排行榜10强)

    如今市面上的护肤产品不胜枚举,面膜更是护肤必不可少的,小仙女们为了美丽肯定踩过无数次雷,买了不少鸡肋产品。和ve一起湿敷祛痘印效果超级好,无限回购,一定要买,绝对不会踩雷。森田玻尿酸补水面膜补水指数:★★★★★精华刚刚好,推荐单纯追求补水的宝宝入手。可莱丝动物面膜补水指数:★★★★卖萌少不了它,真的很可爱!不过面膜纸比较厚,精华液也不够多,效果可能有点差强人意了。

  • 自制蒜盐怎么做好吃(自制蒜盐制作方法)

    下面希望有你要的答案,我们一起来看看吧!自制蒜盐怎么做好吃把大蒜放到案板上,切掉大蒜的底部,可以更容易入味。底部切好后,去除大蒜的外皮,然后用清水清洗干净。大蒜洗净后,放到烤架上晾干水分,也可以用厨房纸擦干水分。准备一个干净无水的容器,把大蒜放到容器里,大的放底下,小的放上面,因为小的更快入味,可以先吃掉。大蒜放好后,倒入适量的酱油和盐,然后密封保存,放在阴凉通风的地方腌一个月。

  • 你所知道的加盟骗局(打工十余载积蓄30万)

    据悉,李明是南方人,在打工十余载之后决定创业当老板。这是李明加盟的第一个坑,选择了一家没有知名度并且以赚加盟费为主的品牌。就这样,李明又交了11万元的房租,其中3万元的进场费,房租是1万元/月,押2付6。在花了将近30万之后,李明的鸡排店终于开业了。为了能够吸引附近的人群到店消费,李明开通了自己的短视频平台。在李明联系总部后,总部表示可以调换一半的物料,但是不能退钱。

  • 青海在哪里(青海的位置)

    青海在哪里青海省,简称“青”,是中华人民共和国省级行政区,省会西宁。青海省地势总体呈西高东低,南北高中部低的态势,西部海拔高峻,向东倾斜,呈梯型下降,东部地区为青藏高原向黄土高原过渡地带,地形复杂,地貌多样。青海省地貌复杂多样,五分之四以上的地区为高原,东部多山,西部为高原和盆地,兼具青藏高原、内陆干旱盆地和黄土高原三种地形地貌,属高原大陆性气候,地跨黄河、长江、澜沧江、黑河、大通河5大水系。

  • 女人梦见葬礼场面是什么兆头(女人梦见葬礼场面的寓意)

    下面更多详细答案一起来看看吧!女人梦见葬礼场面是什么兆头女人梦见办丧事场面,通常代表某件事情的终结,也许你心心念念忘不了的一件事现在会有一个了断。梦见奔丧,会受到人们的喜欢。女人梦见参加别人的葬礼,预示会有财运,经济宽裕,开支减少,收入却有增加的趋势。女人梦见别人家办丧事,代表梦者会有意想不到的收获,但不局限于物质上的,也可能是精神上得到一个升华。

  • 为何要把范冰冰称为范爷(从金锁到范爷)

    01谢晋慧眼识珠1996年,范冰冰从山东风尘仆仆地赶往上海,准备考谢晋影视艺术学院。四五千的报考者,范冰冰一个没有任何表演基础的女孩来说,录取好像是奢望。但是戏剧性的一幕发生了,如偶像剧中的桥段。金锁的角色伴随范冰冰多年,她得以借此走入观众的视野。当时,贾云是皮卡国际集团总裁,在他的协调下,范冰冰和平出走,成了他公司的演员。在贾云不计成本的砸钱下,范冰冰还是没有大火。

  • 航海王热血航线魔鬼三角地带探索墓地惊魂怎么做(魔鬼三角地带探索墓地惊魂如何完成)

    航海王热血航线魔鬼三角地带探索墓地惊魂怎么做?首先玩家们来到恐怖之船找到灵异新闻记者,他会带玩家们去墓地;,我来为大家科普一下关于航海王热血航线魔鬼三角地带探索墓地惊魂怎么做?以下内容希望对你有帮助!