DDR爱好者之家 Design By 杰米
模块之turtle
小故事
前两天朋友说:“常文啊!听说你会python,那能不能用python画一些好看的图呢?”然后我特意去学了一下turtle模块,现在给大家分享一下。
一、什么是turtle
Turtle是python内嵌的绘制线、圆以及其他形状(包括文本)的图形模块。
二、turtle函数的使用
import turtle turtle.pendown() # 放下画笔 turtle.penup() # 抬起画笔 turtle.pensize(int) # 设置画笔宽度,值为整数型 turtle.forward(float) # 讲话比向前移动一定的角度 turtle.backward(float) # 将画笔向后移动一定的角度 turtle.right(angle) # 将画笔右转一定的角度 turtle.left(angle) # #将画笔左转一定的角度 turtle.goto(x,y) # 将画笔移动到一个指定的绝对坐标 turtle.setx(x) # 设置画笔向x方向移动的距离,值为实数 turtle.sety(y) # 设置画笔向y方向移动的距离,值为实数 turtle.setheading(angle) # 设定turtle箭头的方向为指定方向,0–东 90—北 turtle.home() # 将画笔返回到原点 turtle.circle(r,ext,steps=int) # 绘制一个设置半径和阶数的圆(设置之后会绘制多边形) turtle.dot(d,color) # 绘制一个指定直径的圆点,颜色为字符串类型 turtle.undo() #取消最后一个图操作 turtle.speed(s) # 设置画笔速度,为整数类型,且取值在1-10之间 turtle.color(‘str') # 设置画笔颜色,为字符串类型 turtle.fillcolor(‘str') # 设置填充颜色,为字符串类型 turtle.begin_fill() # 结束填充 turtle.end_fill() # 开始填充 turtle.filling() # 返回填充状态,True表示填充,False表示没有填充 turtle.clear() # 清除窗口所有内容 turtle.reset() # 清除窗口,将状态和位置复位为初始值 turtle.screensize(w,h) # 设置turtle显示的大小,并设置宽度和高度 turtle.hideturtle() # 隐藏turtle箭头 turtle.showturtle() # 显示turtle窗口 turtle.done() # 使turtle窗口不会自动消失 turtle.isvisible() # 如果turtle可见,返回turtle turtle.write(‘str',font=(“Arial”,8,“normal”)) # 在turtle位置编写字符串s,字体由字体名、字体大小、字体类型三部分组成 turtle.position() # 获取画笔的坐标,返回一个元组,值为浮点型
案例一:基本使用
import turtle import time turtle.pensize(3) turtle.showturtle() # 显示箭头 turtle.write("吴常文") # 写字符串 turtle.forward(300) # 前进100像素 turtle.color("red") # 画笔颜色改为red turtle.left(90) # 箭头左转90度 turtle.forward(300) turtle.goto(0,50) # 去坐标(0,50) turtle.goto(0,0) # 回到原点 turtle.penup() # 抬笔,这样路径向上 turtle.goto(0,300) turtle.goto(0,0) turtle.pendown() # 下笔,这样路径向下 turtle.goto(0,50) turtle.goto(50,50) turtle.circle(100) # 画圆 time.sleep(5) # 睡5秒
效果图1:
案例二:五角星
import turtle import time turtle.pensize(5) turtle.pencolor("yellow") turtle.fillcolor("red") turtle.begin_fill() for _ in range(5): turtle.forward(200) turtle.right(144) turtle.end_fill() time.sleep(2) turtle.penup() turtle.goto(-150, -120) turtle.color("violet") turtle.write("五角星", font=('Arial', 22, 'normal')) turtle.mainloop()
效果图2:
案例三:奥运五环
#!/user/bin/python3 # --*--coding: utf-8 --*-- # @Time: 2021/2/10 12:22 # @Author:吴常文 # @File: 03奥运五环 import turtle import time turtle.width(10) # 宽度 turtle.color("red") turtle.circle(50) turtle.color("blue") turtle.penup() turtle.goto(120,0) turtle.pendown() turtle.circle(50) turtle.color("black") turtle.penup() turtle.goto(240,0) turtle.pendown() turtle.circle(50) turtle.color("yellow") turtle.penup() turtle.goto(60,-50) turtle.pendown() turtle.circle(50) turtle.color("green") turtle.penup() turtle.goto(180,-50) turtle.pendown() turtle.circle(50) time.sleep(3)
效果图3:
案例四:给你一朵玫瑰花
import turtle import time # 设置初始位置 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() # 花瓣1 turtle.left(150) turtle.circle(-90, 70) turtle.left(20) turtle.circle(75, 105) turtle.setheading(60) turtle.circle(80, 98) turtle.circle(-90, 40) # 花瓣2 turtle.left(180) turtle.circle(90, 40) turtle.circle(-80, 98) turtle.setheading(-83) # 叶子1 turtle.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) # 叶子2 turtle.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.up() turtle.goto(100, -300) turtle.write("Send you a flower, bring you home") time.sleep(5)
效果图4:
案例五:爱心树
#!/user/bin/python3 # --*--coding: utf-8 --*-- # @Time: 2021/2/10 21:56 # @Author:吴常文 # @File: 05 爱心树 from turtle import Turtle, mainloop import turtle def tree(plist, l, a, f): """ plist是笔的列表 l是分支 a的长度是两个分支之间夹角的一半 f是分支之间逐级缩短的系数。""" if l > 5: # lst = [] for p in plist: p.forward( l) # 沿着当前的方向画画按照海龟前进的方向,向前移动指定的距离。 q = p.clone() # 创建并返回具有相同位置、标题和turtle属性的海龟的克隆。 p.left(a) # 以角度单位将海龟向左翻转 q.right( a) # 以角度单位将海龟右转,nit是默认的角度,但可以通过degrees()和radians()函数设置。 lst.append(p) # 将元素增加到列表的最后 lst.append(q) tree(lst, l * f, a, f) def main(): p = Turtle() p.color("red") p.pensize(4) # p.setundobuffer(None) p.hideturtle() # 让乌龟隐形。这是一个好主意,当你在做一些复杂的绘图时, # 因为把乌龟藏起来能明显加快绘图速度。 # p.speed(10) # p.getscreen().tracer(1,0)#Returtle.write("You are the secret of my heart") p.speed(4) # 然后可以为该对象调用TurtleScreen方法。 p.left(90) # 方向以角度单位将海龟向左翻转。 调整画笔 p.penup() # 向上拉笔——移动时不绘图。 p.goto(0, -200) # 移动海龟到一个绝对位置。如果笔放下了,画一条线。不要改变海龟的方向。 p.pendown() # 向下拉笔——移动时绘图 这三条语句是一个组合相当于先把笔收起来再移动到指定位置,再把笔放下开始画 # 否则turtle一移动就会自动的把线画出来 # t = tree([p], 200, 65, 0.6375) t = tree([p], 200, 65, 0.6375) turtle.down() turtle.goto(-80, 70) turtle.write("There's a heart for you") turtle.done() main()
效果图5:
案例六:给你一颗爱心
#!/user/bin/python3 # --*--coding: utf-8 --*-- # @Time: 2021/2/10 22:07 # @Author:吴常文 # @File: 06 爱心 import turtle import time def func(): for i in range(200): turtle.right(1) turtle.forward(1) turtle.color('red', 'pink') turtle.pensize(2) turtle.speed(10) turtle.goto(0, 0) turtle.begin_fill() turtle.left(140) turtle.forward(112) func() turtle.left(120) func() turtle.forward(112) turtle.end_fill() turtle.pensize(5) turtle.up() turtle.goto(-80, 122.7) turtle.left(70) turtle.down() # turtle.forward(0) turtle.up() turtle.goto(100, -10) turtle.write("There's a heart for you") turtle.done() time.sleep(3)
效果图6:
案例七:五星红旗
import turtle as t # 位移函数 def Skip(t,x,y): t.penup() t.goto(x,y) t.pendown() # 绘制五星红旗 def draw(t,x,y,z): t.begin_fill() for i in range(x): t.forward(y) t.left(z) t.end_fill() # 画笔基础设置 t.screensize(1200,800) t.pensize(5) t.hideturtle() t.speed(5) t.pencolor("red") # 画笔移动 Skip(t,0,-200) # 绘制国旗 t.fillcolor("red") t.begin_fill() t.forward(300) t.left(90) t.forward(400) t.left(90) t.forward(600) t.left(90) t.forward(400) t.left(90) t.forward(300) t.end_fill() # 画笔移动 Skip(t,-250,115) # 绘制大五角星 t.pencolor("yellow") t.fillcolor("yellow") t.begin_fill() for i in range(5): t.forward(100) t.right(144) t.end_fill() """第一颗副星""" # 画笔移动 Skip(t,-120,10) # 绘制小五星 draw(t,5,30,144) """第二颗副星""" # 画笔移动 Skip(t,-80,50) # 绘制小五星 draw(t,5,30,144) """第三颗副星""" # 画笔移动 Skip(t,-80,110) # 绘制小五星 draw(t,5,30,144) """第四颗副星""" # 画笔移动 Skip(t,-120,150) # 绘制小五星 draw(t,5,30,144) t.done()
效果图7:
总结
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月24日
2024年11月24日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]