用Python的turtle画出beautiful四扇风车图
一、简单了解turtle
1.turtle是什么?
这里引用Python官方文档的片段:
海龟绘图
海龟绘图很适合用来引导孩子学习编程。 最初来自于 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 于 1967 年所创造的 Logo 编程语言。
请想象绘图区有一只机器海龟,起始位置在 x-y 平面的 (0, 0) 点。先执行 import turtle,再执行 turtle.forward(15),它将(在屏幕上)朝所面对的 x 轴正方向前进 15 像素,随着它的移动画出一条线段。再执行 turtle.right(25),它将原地右转 25 度。
通过组合使用此类命令,可以轻松地绘制出精美的形状和图案。
总的来说,turtle就是一个能让开发人员在计算机上轻易地画出精美的图案的Python标准库。
那,turtle怎么用呢?
2.turtle怎么用?
博主无能,只好再次借鉴他人的博客了:详情见----知行流浪的博客
Python绘图Turtle库详解
- 画布(canvas)
设置画布大小
turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色。- 画笔
2.1画笔的属性
画笔(画笔的属性,颜色、画线的宽度等)
1) turtle.pensize():设置画笔的宽度;
2) turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", “red”,也可以是RGB 3元组。
3) turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
2.3 绘图命令
操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令
…
总之,这位博主说得很不错的,强烈建议大家去看看他的原文(链接在上面↑)
还有,我在这里也得解释几个常用指令(不然小白可能看不懂):
命令 | 参数 | 作用 |
---|---|---|
turtle.bgcolor(*args) | args – 一个颜色字符串(“red”…)或三个取值范围 0…colormode 内的数值(128, 0, 128)或一个取值范围相同的数值("#800080"…)(RGB)3元组 | 设置背景颜色,无参数则返回背景颜色。 |
turtle.circle(radius, extent=None, steps=None) | radius – 一个数值 extent – 一个数值 (或 None) steps – 一个整型数 (或 None) | 绘制一个 radius 指定半径的圆。圆心在海龟左边 radius 个单位;extent 为一个夹角,用来决定绘制圆的一部分。如未指定 extent*则绘制整个圆。如果 *extent 不是完整圆周,则以当前画笔位置为一个端点绘制圆弧。如果 radius 为正值则朝逆时针方向绘制圆弧,否则朝顺时针方向。最终海龟的朝向会依据 extent 的值而改变。圆实际是以其内切正多边形来近似表示的,其边的数量由 steps 指定。如果未指定边数则会自动确定。此方法也可用来绘制正多边形。 |
turtle.left(angle)和turtle.right(angle) | angle – 一个数值 (整型或浮点型) | 海龟右(左)转 angle 个单位。(单位默认为角度) |
turtle.width(width=None) | width – 一个正数值 | 设置线条的粗细为 width , 如果无参数, 则返回该值(粗细) |
好了,对turtle有了一定的了解后,咱们切回正题。
二、Turtle实践
学完理论的东西后,不实践的话就会很容易将其忘掉,废话不多说,直接上代码!----
1.代码片段
import turtle
import timetime.sleep(0.1) # 停止时长,具体原因不知,但这个可以防止程序运行崩溃(可能吧).# /*以下为可变参数,除此之外,改变数据可能会导致运行不成功或影响运行效果.
colors=["red","yellow","green","blue","orange","purple"] # 可以改,但不能乱改,取值范围要看turtle支持的颜色,可以是字符串如"green", "red",也可以是RGB 3元组.
times = 180 # 重复次数,太多了需要等很长时间,太少了不震撼,180刚刚好.
extent = 90 # 弧度,嗯...,举个例子,360是整圆,180是半圆,90是四分之一圆,或者就主题来说360//extent=n,那n就是n叶(扇)风车.
probability = 2 # 概率,这个你可能得先运行几遍,等看懂的时候再来改(大佬自行忽略).
speed = 10 # 画笔速度,但不包括画圆时的速度.
background_color = "black" # 同第九行注释,这是背景颜色.
# */turtle.bgcolor(background_color)
turtle.speed(speed)if __name__ == "__main__": #判断是否以主程序的形式运行(意思是,防止导入模块时自动运行for循环代码片段).for x in range(times):turtle.pencolor(colors[x%len(colors)]) # len(colors),这个没有那么死,可以改成别的(如 1, 2, 3...),但不要大于 len(colors).turtle.circle(x,extent)if x%probability==0:turtle.left(90)turtle.forward(x)turtle.width(x*4/400)
有能力的人可以先不看P2,看看是否能理解(我觉得我的注释写的已经够全了,我尽力了!)
2.实例说明
- 导入turtle标准库
- 导入time标准库(用于处理时间日期的标准库)
- 中断执行(休眠)0.1秒,为防止无响应(应该是可以的)。
- 用户可根据自己需要来改变以下变量
- 颜色
- (重复)次数
- 弧度
- 概率
- (画笔)速度
- 背景颜色
- over
- 开始运用变量了,设置背景颜色为黑色(默认)
- 设置速度为10(默认)
- 用这个if语句,是为了防止它被当做模块导入时自动执行里面的代码(即23~29行)
- main部分,利用for循环来画出有规律的图案
- 根据x的值变换画笔颜色
- 由x的递增画出越来越大(x为半径参数)的半圆(因为extent的值为90)
- 用if语句来是的这里面的代码每两次(默认)执行一次
- 左转90°,准备移动
- 由于上一行左转了90°,所以现在方向不是原来方向,并朝现在方向移动x个单位长度,x递增,移动距离也随之变化
- 这里可能有点啰嗦,但无论怎样,目的都只是为了让画笔粗细随x缓慢递增(所以这里的代码也是可变的,默认是x/100,可以把这里的100变成其它数,越大,笔画粗细增长越慢;反之,笔画粗细增长越慢)
理解以后,这些知识就归你所属了,准备好自己去创造一场视觉盛宴吧!
三、运行效果
运行效果如下↓(默认)
四、致谢
1.知行流浪
《Python绘图Turtle库详解》
非常感谢这位博主的博客,这篇文章较详细地介绍了turtle库的用法,虽不如官方文档介绍的全面,但简单易懂,并给出了适合初学者去理解的几个实例(我也是在这里学会的Turtle)。
2.qq_14961401
《用python的turtle画炫酷的图》
这就是一场视觉盛宴!!真得非常amazing!这篇文章就是我的灵感来源,这里面有四个非常炫酷的Turtle实例,并且有一定挑战性,可以说是一片宝藏了()!
五、关于是否原创
嗯…大部分都是我写的了,代码也是的。我承认这里面也借鉴了一部分《用python的turtle画炫酷的图》里面的(背景颜色和colors,就这些了),但这里也有我个人的创意,比如这里的形状,以及将其实现的逻辑部分。
况且,盗窃别人的劳动成果,是没有任何喜悦和成就感的。
此文为原创,如有雷同,纯属巧合。
六、尾声
1.祝辞(算是吧…)
我不到这会有多少人看,但我不在乎,如果看到了,那就当做涨了一个知识,交了一个朋友,放了会松…可能有点造作吧。
2.第一次
这是我第一次,人生第一次写博客,断断续续的忙活了两个半小时,终于写完了!但文中还有一些错误,或是有更好的解决方案,还请各位能大胆指出来,敝人定会虚心接受!
用Python的turtle画出beautiful四扇风车图相关推荐
- python用turtle画出给定图片的图像
python用turtle画出给定图片的图像.校徽等复杂图像都可以 需要: 1.要画的图片 2.安装好cv和turtle 打开python文件,把想画的图片放到和py文件同目录,代码中默认图片名字为1 ...
- Python 利用 turtle画出樱花树
直接粘效果图 以及代码 import turtle as T import random import timedef Tree(branch, tur):time.sleep(0.0001)if b ...
- python : 利用turtle 画出一朵花 红花绿叶!
别处看到的,直接给出源码! 我的Python3以上版本: # -*- coding: cp936 -*-import turtleimport mathdef p_line(t, n, length, ...
- Python编程,使用turtle画出漂亮的雪花--完整代码绘画实现洁白的雪绒花~~
Python编程,使用turtle画出漂亮的雪花--完整代码实现洁白的雪绒花~~ Python中turtle库,可以方便的让你实现各种各样的功能.简单易用,有的时候能够创作出,你想像不到的漂亮图案.今 ...
- 使用python turtle画出一个钻戒
看了很多教程,画出的不同的图案,今天我在这里与大家分享一个使用python turtle画出一个钻戒. 源代码如下: #引入小海龟模块 import turtle #设置画板的背景色 turtle.b ...
- python画图小猪佩奇_吊炸天!Python 20秒画出小猪佩奇
原标题:吊炸天!Python 20秒画出小猪佩奇 今年社交平台上的带货女王是谁?范冰冰?杨幂?Angelababy?不,是猪猪女孩小猪佩奇. 小猪佩奇在构图基本是各种曲线,类抛物线.类圆.类椭圆.类二 ...
- 用python 画炫酷的图并讲解-使用Python的turtle画炫酷图形
原标题:使用Python的turtle画炫酷图形 例子一: import turtle t = turtle.Pen() turtle.bgcolor("black") sides ...
- python中用turtle画爱心表白
python中用turtle画爱心表白 运行后的效果图: 下面的代码是在python3.7写的,代码有点长,但却语法简单易懂 代码如下: import turtle str = input('请输入表 ...
- 用Python的turtle画一只小猪乔治【刚学python两天,纪念一下】
本人是新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治[手动比心 by zwx lvmm] [女朋友很喜欢小猪乔治,我在学习python,她说,那你会画小猪乔治了吗? ...
最新文章
- SunlightChain 区块链宣言
- SVM学习笔记1-问题定义
- 常见的16进制文件头
- ORACLE中科学计数法显示问题的解决
- Java static 静态代码块、代码块
- 在DataTable和DataView中查找指定记录
- 无限分级 层次输出 demo
- 商城后台管理系统Vue+Vue-Router+Element-UI+Axios+Echarts 黑马程序员视频笔记
- 白英彩 计算机组成原理,国家教委关于批转试行全国考委高等教育自学考试电气工程、电子技术、计算机及其应用三个专业专科考试计划的通知...
- iOS开发中向iPhone模拟器中添加视频资源
- buuctf——(HDCTF2019)Maze
- 28、制作畅销书排行榜页面
- 服务器维护表格,服务器维护表格
- python取消任务的方法_对Python定时任务的启动和停止方法详解
- 个人电脑网站的创建与发布
- BZOJ3838 : [Pa2013]Raper
- ps无法启动因为计算机中丢失api ms,解决win8下ps提示“丢失api-ms-win-crt-runtime-l1-1-0.dll”的方法...
- java与单片机通信_Java实现串口通信与单片机通信实例..【Pnoter】
- 领导驾驶舱如何助力领导做决策?
- NTLM认证原理及其过程
热门文章
- 如何开搓饵不掉钩_搓饵要加拉丝粉吗 搓饵怎么上不脱钩
- [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
- .Net开源SqlServer ORM框架SqlSugar整理
- 2022 年 JavaScript 开发工具的生态,别再用过时的框架了
- 【xml-ass】B站弹幕相关
- 【项目实践】——java异常A child container failed during start
- csgo无法连接服务器和系统有关吗,csgo-连接官方服务器失败解决方法
- 一分钟了解芯片工作的心脏
- ppt未保存+已关闭,可以恢复!
- 梦幻西游维护后的测试服务器,梦幻西游:测试服务器迎来二次维护,伤害衰减BUG被修复但临时符咋办...