一、简单了解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库详解

  1. 画布(canvas)
    设置画布大小
    turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色。
  2. 画笔
    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.实例说明

  1. 导入turtle标准库
  2. 导入time标准库(用于处理时间日期的标准库)
  3. 中断执行(休眠)0.1秒,为防止无响应(应该是可以的)。
  4. 用户可根据自己需要来改变以下变量
  5. 颜色
  6. (重复)次数
  7. 弧度
  8. 概率
  9. (画笔)速度
  10. 背景颜色
  11. over
  12. 开始运用变量了,设置背景颜色为黑色(默认)
  13. 设置速度为10(默认)
  14. 用这个if语句,是为了防止它被当做模块导入时自动执行里面的代码(即23~29行)
  15. main部分,利用for循环来画出有规律的图案
  16. 根据x的值变换画笔颜色
  17. 由x的递增画出越来越大(x为半径参数)的半圆(因为extent的值为90)
  18. 用if语句来是的这里面的代码每两次(默认)执行一次
  19. 左转90°,准备移动
  20. 由于上一行左转了90°,所以现在方向不是原来方向,并朝现在方向移动x个单位长度,x递增,移动距离也随之变化
  21. 这里可能有点啰嗦,但无论怎样,目的都只是为了让画笔粗细随x缓慢递增(所以这里的代码也是可变的,默认是x/100,可以把这里的100变成其它数,越大,笔画粗细增长越慢;反之,笔画粗细增长越慢)

理解以后,这些知识就归你所属了,准备好自己去创造一场视觉盛宴吧!

三、运行效果

运行效果如下↓(默认)

四、致谢

1.知行流浪

《Python绘图Turtle库详解》
非常感谢这位博主的博客,这篇文章较详细地介绍了turtle库的用法,虽不如官方文档介绍的全面,但简单易懂,并给出了适合初学者去理解的几个实例(我也是在这里学会的Turtle)。

2.qq_14961401

《用python的turtle画炫酷的图》
这就是一场视觉盛宴!!真得非常amazing!这篇文章就是我的灵感来源,这里面有四个非常炫酷的Turtle实例,并且有一定挑战性,可以说是一片宝藏了()!

五、关于是否原创

嗯…大部分都是我写的了,代码也是的。我承认这里面也借鉴了一部分《用python的turtle画炫酷的图》里面的(背景颜色和colors,就这些了),但这里也有我个人的创意,比如这里的形状,以及将其实现的逻辑部分。
况且,盗窃别人的劳动成果,是没有任何喜悦和成就感的。
此文为原创,如有雷同,纯属巧合。

六、尾声

1.祝辞(算是吧…)

我不到这会有多少人看,但我不在乎,如果看到了,那就当做涨了一个知识,交了一个朋友,放了会松…可能有点造作吧。

2.第一次

这是我第一次,人生第一次写博客,断断续续的忙活了两个半小时,终于写完了!但文中还有一些错误,或是有更好的解决方案,还请各位能大胆指出来,敝人定会虚心接受!

用Python的turtle画出beautiful四扇风车图相关推荐

  1. python用turtle画出给定图片的图像

    python用turtle画出给定图片的图像.校徽等复杂图像都可以 需要: 1.要画的图片 2.安装好cv和turtle 打开python文件,把想画的图片放到和py文件同目录,代码中默认图片名字为1 ...

  2. Python 利用 turtle画出樱花树

    直接粘效果图 以及代码 import turtle as T import random import timedef Tree(branch, tur):time.sleep(0.0001)if b ...

  3. python : 利用turtle 画出一朵花 红花绿叶!

    别处看到的,直接给出源码! 我的Python3以上版本: # -*- coding: cp936 -*-import turtleimport mathdef p_line(t, n, length, ...

  4. Python编程,使用turtle画出漂亮的雪花--完整代码绘画实现洁白的雪绒花~~

    Python编程,使用turtle画出漂亮的雪花--完整代码实现洁白的雪绒花~~ Python中turtle库,可以方便的让你实现各种各样的功能.简单易用,有的时候能够创作出,你想像不到的漂亮图案.今 ...

  5. 使用python turtle画出一个钻戒

    看了很多教程,画出的不同的图案,今天我在这里与大家分享一个使用python turtle画出一个钻戒. 源代码如下: #引入小海龟模块 import turtle #设置画板的背景色 turtle.b ...

  6. python画图小猪佩奇_吊炸天!Python 20秒画出小猪佩奇

    原标题:吊炸天!Python 20秒画出小猪佩奇 今年社交平台上的带货女王是谁?范冰冰?杨幂?Angelababy?不,是猪猪女孩小猪佩奇. 小猪佩奇在构图基本是各种曲线,类抛物线.类圆.类椭圆.类二 ...

  7. 用python 画炫酷的图并讲解-使用Python的turtle画炫酷图形

    原标题:使用Python的turtle画炫酷图形 例子一: import turtle t = turtle.Pen() turtle.bgcolor("black") sides ...

  8. python中用turtle画爱心表白

    python中用turtle画爱心表白 运行后的效果图: 下面的代码是在python3.7写的,代码有点长,但却语法简单易懂 代码如下: import turtle str = input('请输入表 ...

  9. 用Python的turtle画一只小猪乔治【刚学python两天,纪念一下】

    本人是新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治[手动比心 by zwx lvmm] [女朋友很喜欢小猪乔治,我在学习python,她说,那你会画小猪乔治了吗? ...

最新文章

  1. SunlightChain 区块链宣言
  2. SVM学习笔记1-问题定义
  3. 常见的16进制文件头
  4. ORACLE中科学计数法显示问题的解决
  5. Java static 静态代码块、代码块
  6. 在DataTable和DataView中查找指定记录
  7. 无限分级 层次输出 demo
  8. 商城后台管理系统Vue+Vue-Router+Element-UI+Axios+Echarts 黑马程序员视频笔记
  9. 白英彩 计算机组成原理,国家教委关于批转试行全国考委高等教育自学考试电气工程、电子技术、计算机及其应用三个专业专科考试计划的通知...
  10. iOS开发中向iPhone模拟器中添加视频资源
  11. buuctf——(HDCTF2019)Maze
  12. 28、制作畅销书排行榜页面
  13. 服务器维护表格,服务器维护表格
  14. python取消任务的方法_对Python定时任务的启动和停止方法详解
  15. 个人电脑网站的创建与发布
  16. BZOJ3838 : [Pa2013]Raper
  17. ps无法启动因为计算机中丢失api ms,解决win8下ps提示“丢失api-ms-win-crt-runtime-l1-1-0.dll”的方法...
  18. java与单片机通信_Java实现串口通信与单片机通信实例..【Pnoter】
  19. 领导驾驶舱如何助力领导做决策?
  20. NTLM认证原理及其过程

热门文章

  1. 如何开搓饵不掉钩_搓饵要加拉丝粉吗 搓饵怎么上不脱钩
  2. [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  3. .Net开源SqlServer ORM框架SqlSugar整理
  4. 2022 年 JavaScript 开发工具的生态,别再用过时的框架了
  5. 【xml-ass】B站弹幕相关
  6. 【项目实践】——java异常A child container failed during start
  7. csgo无法连接服务器和系统有关吗,csgo-连接官方服务器失败解决方法
  8. 一分钟了解芯片工作的心脏
  9. ppt未保存+已关闭,可以恢复!
  10. 梦幻西游维护后的测试服务器,梦幻西游:测试服务器迎来二次维护,伤害衰减BUG被修复但临时符咋办...