Python 代码理解 polygon.py

1、运行和阅读代码

该代码的主要功能为通过调用不同的包,设置不同的线段数、线段长度和角度等条件,进行不同图形的绘制。

经过环境配置和代码阅读后,初步运行代码如下图所示:

2、理解代码功能

具体功能理解将在代码中以注释形式体现:

import mathtry:#查看Swampy是否以包的形式安装from swampy.TurtleWorld import *
except ImportError:#否则查看模块是否在PYTHONPATH中from TurtleWorld import *
def square(t, length):#绘制具有给定边长的四边形#length: 边长for i in range(4):fd(t, length)                #forward:向前走指定长度lengthlt(t)                      #left_turn:向左转指定角度(此处指定角度缺省,因为在函数定义时已初设为90°)
def polyline(t, n, length, angle):#绘制具有给定边数和边长的正多边形(具体执行函数)#t: Turtle对象#n: 边数#length: 边长#angle: 两边夹角for i in range(n): fd(t, length)               #forward:向前走指定长度lengthlt(t, angle)               #left_turn:向左转指定角度angle
def polygon(t, n, length):#绘制具有给定边数和边长的正多边形(入口函数)#t: Turtle对象#n: 边数#length: 边长#angle: 两边夹角angle = 360.0/npolyline(t, n, length, angle)    #绘制操作在polyline()函数中具体执行
def arc(t, r, angle):#绘制具有给定半径和角度的圆弧#t: Turtle对象#r: 半径#angle: 弧度角,以度表示arc_length = 2 * math.pi * r * abs(angle) / 360n = int(arc_length / 4) + 1step_length = arc_length / nstep_angle = float(angle) / n#在开始前稍作左转可以减少弧的线性近似所引起的误差lt(t, step_angle/2)polyline(t, n, step_length, step_angle)rt(t, step_angle/2)
def circle(t, r):#绘制给定半径的圆#t: Turtle对象#r: 半径arc(t, r, 360)
if __name__ == '__main__':world = TurtleWorld()             #建立一个TurtleWorld对象,赋值给worldbob = Turtle()                   #建立一个Turtle对象,赋值给bobbob.delay = 0.001#绘制圆心在原点的圆radius = 100                    #圆的半径为100pu(bob)                            #将对象的pen属性设为False(即仅移动不绘制)fd(bob, radius)                   #先让笔尖从原点向右偏离半径radius的距离,作为绘制起点lt(bob)                            #向左转,朝向圆的切线方向pd(bob)                         #将对象的pen属性设为Truecircle(bob, radius)             #开始绘制#告诉TurtleWorld等待用户进行某些操作(本例中为“关闭窗口”)wait_for_user()

3、修改代码,练习调用文件中其他几个图形函数

下文只列出关键代码段落运行结果

3.1绘制四边形

if __name__ == '__main__':world = TurtleWorld()bob = Turtle()bob.delay = 0.001length = 100                   #设置四边形边长为100pd(bob)square(bob, length)wait_for_user()

3.2绘制一个边数为6的正多边形

if __name__ == '__main__':world = TurtleWorld()bob = Turtle()bob.delay = 0.001n = 6                          #设置边数为6length = 100                    #设置边长为100pd(bob)polygon(bob, n , length)wait_for_user()

3.3绘制一个弧度角为90°的圆弧

if __name__ == '__main__':world = TurtleWorld()bob = Turtle()bob.delay = 0.001r = 100                            #设置半径为100angle = 90                        #设置弧度角为90°pd(bob)arc(bob, r, angle)wait_for_user()

3.4绘制一个小蓝人的头

if __name__ == '__main__':world = TurtleWorld()bob = Turtle()bob.delay = 0.001#以下为调参和绘制过程radius = 200pu(bob)fd(bob, radius)lt(bob)pd(bob)circle(bob, radius)pu(bob)lt(bob)fd(bob, 140)rt(bob)fd(bob, 40)pd(bob)circle(bob, 8)pu(bob)lt(bob)fd(bob, 104)rt(bob)pd(bob)circle(bob, 8)pu(bob)rt(bob)rt(bob)fd(bob, 50)pd(bob)arc(bob, 44, 180)lt(bob)fd(bob, 88)wait_for_user()

Python 代码理解 polygon.py相关推荐

  1. Python提取.ipynb文件中的Python代码保存为.py文件

    封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答案.课堂管理 ...

  2. Python代码加密:py文件转pyd文件

    目前使用python语言比较多,尤其是深度学习项目,但是使用python加密比较麻烦,前期接触过几种加密的方案,但是效果都不理想,现在有一种思路比较靠谱:python原文件转pyd,然后用加密狗加密p ...

  3. 100行Python代码理解深度学习关键概念:从头构建恶性肿瘤检测网络

    在构建乳腺癌预测神经网络过程中,我们主要分为3大部分: 1.用Python从零开始创建一个神经网络,并使用梯度下降算法训练模型. 2.在该神经网络中使用威斯康星乳腺癌数据集,根据9种不同的特征,预测肿 ...

  4. 【LDA学习系列】MCMC之Metropolis-Hastings采样算法python代码理解

    Metropolis-Hastings采样算法的流程: 代码一:有助于理解算法流程 # -*- coding: utf-8 -*- ''' Created on 2018年5月15日@author: ...

  5. Python代码编译,py文件编译为pyc文件

    介绍: 编译py文件为pyc,并且移除编译生成的文件夹和编译前的py文件 请见代码库: 点击此处获取一键编译脚本[gitee] 使用说明: 1.将需要编译的项目复制出来,放到compile_dir_a ...

  6. 牛逼的python代码_几段牛逼的 Python 代码理解面向对象

    Python技术相关的干货加群: 227435450 Python 有什么好处?功能强大,使用简单,语言唯一性的特征明显(唯一性的意思就是你不能用十八种写法实现一个功能),而且具备海量的第三方库--P ...

  7. python蟒蛇代码解析_Python绘制蟒蛇代码理解

    Python 绘制蟒蛇代码理解 # pythondraw.py import turtle #import 是保留字, 引入一个会图库, 名字叫做 turtle #import< 库名 > ...

  8. python代码转成php代码的工具 或者go转成php的代码,想把odoo改成成php swoole当成web服务+go的架构

    目前市场上有一些可以将Python代码转换为PHP代码的工具,例如: Transcrypt:Transcrypt是一个将Python代码转换为JavaScript和PHP的工具.它可以将Python代 ...

  9. 仅用几行Python代码就能帮小姐姐复制U盘文件,实用干货

    今天有个读大学的小姐姐找到我,问我有没有什么办法可以复制U盘文件,我很疑惑她复制U盘要干啥呢,仔细问了才知道小姐姐打算复制老师的U盘,看里面课件还有练习题,嗯,好学生呀,我就想直接分享出方法,大家一起 ...

最新文章

  1. NLP模型也有“老师”了!装上这个开源库,1毫秒纠正语法错误
  2. HDU 1166(线段树)
  3. C#字符ASCII码学习经验
  4. SQL语句正常,在Navicat中运行正常,但是在后台运行,无法查询出数据,也不报错...
  5. JavaScript框架
  6. platform_driver_probe与platform_driver_register的区别
  7. Elasticsearch CURL命令
  8. 国科大高级人工智能3-DNN(BM/RBM/DBN/DBM)
  9. 人类视觉计算理论经典著作,豆瓣评分9.7,中文版惊鸿面世!
  10. 申威 linux内核,一种申威防火墙快速移植高版本linux内核的方法与流程
  11. 只需一行代码,就能导入所有的Python库?
  12. java sctp_[编织消息框架][传输协议]sctp简单开发
  13. python单词的含义-学Python必背的初级单词,你都背了吗?
  14. 计算机应用技术基础 形考4,最新电大《计算机应用技术基础》形考作业任务01-03网考试题及答案...
  15. vos3000防火墙规则
  16. Python:实现蓝牙通信
  17. 计量经济学学习笔记:多元线性模型
  18. 宽带噪声干扰 matlab,噪声干扰信号及Matlab仿真.doc
  19. 【雅思大作文考官范文】——第十六篇:climate change essay
  20. 唐僧为什么可以领导孙悟空(项目管理)

热门文章

  1. python:计算股票 CAPM
  2. Openstack(T版)组件部署
  3. 怎么发送采集数据到网站-http接口方式
  4. 当今书法行业如何转型线上?
  5. 李纳斯是个怎样的人?
  6. z stat.php 源码,phpstat任意读取网站文件
  7. matlab x(n)16点DFT,数字信号处理课程设计参考题目
  8. gcc流程及鲜有人知的参数
  9. html添加实时视频的代码,关于添加网页视频的html代码
  10. 四川职业技术学院2021年计算机考纲,2021年关于公布四川省普通高校对口招生职业技能考试大纲的通知...