2.1旋转的海龟

让我们看看当修改了程序中某一数值的时候,会发生什么?学习和程序相关的新知识的一种方法是,当我们修改其中某一部分的时候,看看案发生了什么。我们不会总是得到一个很好的结果,但是,即使是某些地方出错的时候,我们也能学到东西。

我们只是将程序的最后一行修改为t.left(91),将其保存为Square(2).py

import turtle
t = turtle.Pen()
for x in range(100):t.forward(x)t.left(91)

我们提到了向左转90°会创建一个完美的正方形。每次向左转的比90°多一点点的话(在这个例子中,是91°),会将正方形略微向外抛出一点点。由于我们进行下一次旋转的时候,已经偏离了一点点,随着程序继续进行,新的图形越来越不像是一个正方形。实际上,它创建了一个开始向左旋转的、漂亮的螺旋形。

这也是一个漂亮的图像,可以帮助我们理解如何治略微修改一个数字就显著的改变程序的结果。

如果我们还不知道度是如何工作的,现在先不要担心,我们只要修改数字,看看发生了什么就好了。我们通过修改数字,看看发生了什么就好了。

2.2海龟画圆

说到几何,海龟作图可以绘制很多有趣的形状,而不是直线。我们将在下一节课中再次说到正方形,但现在,让我们来更多地了解一下Python Turtle库。

我们再来修改一行代码:t.forward(x)。我们在前面看到了这条命令或函数,他将海龟的钢笔向前移动x个像素并且绘制一条笔直的段;然后,海龟转向并且再次绘制。如果我们修改这行代码来绘制更为复杂一点的图形,例如圆,那会怎么样呢?

import turtle
t = turtle.Pen()
for x in range(100):t.circle(x)t.left(91)

学习过几何的都知道,为绕一个点旋转一圈有360°,就像是一个正方形有4个90°的角。海龟通过每次围绕图形旋转的比90°多一点点,从而绘制出这个螺旋线的形状。

下期我们会将如何在Turtle中添加颜色,尽请期待

Python新手进阶教程之1、海龟作图(2)相关推荐

  1. Python新手进阶教程之1、海龟作图——用Python绘图(1)

    1.1海龟的作用 使用海龟作图,我们不仅能够只用几行代码就创建出令人影响深刻的视觉效果,而且还可以跟海龟看看几行代买如何影响到它的移动.者能够帮助我们理解代码的逻辑. 1.2第一个海龟程序 让我们使用 ...

  2. Directx11进阶教程之Cluster Based Deffered Shading

    前言 很多游戏中存在大量的点光源(PointLight),环境艺术家为了让游戏模拟现实的氛围,一个场景下放下上千个点光源(PointLight)毫不奇怪. 在上一章中  Directx11进阶教程之T ...

  3. python turtle 绘图小猪佩奇_python海龟作图完成小猪佩奇

    python海龟作图完成小猪佩奇 来源:常州童程童美少儿编程学校时间:2020/10/12 11:44:59 观察这个图像可以发现,小猪佩奇在构图基本是各种曲线,类抛物线.类圆.类椭圆.类二次贝塞尔曲 ...

  4. python ogr_python gdal教程之:用ogr读写矢量数据

    为什么用open source? 优点 1. 免费,适合个人和小公司 2. 强大的开发工具,找bug更容易 3. 跨平台,windows和linux都能用 4. 拉风! 缺点 1. 没有内嵌地理处理器 ...

  5. Python极简教程之二:数据类型

    基础类型 数字(Numbers) Python 支持五种基本数字类型,分别为int(有符号整数).long(长整数) .bool(布尔值).float(浮点数).complex(复数). 字符串(St ...

  6. 根据用户查进程_【磨叽教程】Android进阶教程之在Android系统下各进程之间的优先级关系...

    导读:本文大约2000字,预计阅读时间3分钟.本文纯属技术文,无推广. 正文     首先应用进程的生命周期并不由应用本身直接控制,而是由系统综合多种因素来确定的.Android系统有自己的一套标准, ...

  7. Vue 进阶教程之:详解 v-model

    分享 Vue 官网教程上关于 v-model 的讲解不是十分的详细,写这篇文章的目的就是详细的剖析一下, 并介绍 Vue 2.2 v-model 改进的地方,然后穿插的再说点 Vue 的小知识. 在 ...

  8. Spring进阶教程之在ApplicationContext初始化完成后重定义Bean

    之前遇到一个很有意思的问题:我需要批量重定义特定类型的由Spring容器托管的Bean.具体体现在,我有很多控制器类(Controller)和校验器类(Validator),我希望他们都是多例(Pro ...

  9. C++高级进阶教程之STL 教程

    STL 教程 在前面的章节中,我们已经学习了 C++ 模板的概念.C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和 ...

最新文章

  1. 解决SQL SERVER LDF文件过大的问题
  2. ElementUI的表单验证及常用规则
  3. Redis:redis cluster的实现细节
  4. 快速掌握TensorFlow中张量运算的广播机制
  5. 带缓冲的I/O操作和不带缓冲的I/O操作
  6. Jquery点点滴滴-draggable对象和droppable对象
  7. Exchange Server2010系列之五:再谈邮箱基本管理
  8. linux 查看tomcat启动_一次tomcat启动特别慢的排查
  9. java实现行政区域划分_java解析中国行政区域并在页面显示实现动态逐级筛选
  10. 一次惨痛的微软AA面经历
  11. 鼠标按下并移动事件的解决方案
  12. 7月31日 细雨霏霏 不是我的泪
  13. Ansible9:变量之Fact
  14. [一亩三分地] 答题答案总结
  15. 超全园林 景观cc0高清摄影图片素材网站整理
  16. COVID-19检测方法汇总
  17. web网站的注销功能实现
  18. 使用高德SDK开发安卓地图应用软件
  19. 2020年度中国“最佳女性投资人”榜单发布
  20. DataGrip下载安装及使用教程(详细版)

热门文章

  1. Source Insight 4.0.008最新版体验用法和破解下载地址
  2. android横向列表控件,Android逆天控件:CircleListView(圆弧形列表)
  3. web前端入门到实战:css伪元素::after和::before,及图标字体的使用
  4. 百度超级链成为首个捐赠给开放原子开源基金会的项目
  5. Buildroot 神器
  6. NVIDIA_TX1之Jetpack4.6使用笔记
  7. JAVA毕业设计家用饰品在线销售系统计算机源码+lw文档+系统+调试部署+数据库
  8. “老龄化”创造的电商机遇:重视中老年的“银发市场”
  9. 练习瑕疵还有穿帮怎么修
  10. sublime 3 编辑器