Python 代码理解 polygon.py
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相关推荐
- Python提取.ipynb文件中的Python代码保存为.py文件
封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答案.课堂管理 ...
- Python代码加密:py文件转pyd文件
目前使用python语言比较多,尤其是深度学习项目,但是使用python加密比较麻烦,前期接触过几种加密的方案,但是效果都不理想,现在有一种思路比较靠谱:python原文件转pyd,然后用加密狗加密p ...
- 100行Python代码理解深度学习关键概念:从头构建恶性肿瘤检测网络
在构建乳腺癌预测神经网络过程中,我们主要分为3大部分: 1.用Python从零开始创建一个神经网络,并使用梯度下降算法训练模型. 2.在该神经网络中使用威斯康星乳腺癌数据集,根据9种不同的特征,预测肿 ...
- 【LDA学习系列】MCMC之Metropolis-Hastings采样算法python代码理解
Metropolis-Hastings采样算法的流程: 代码一:有助于理解算法流程 # -*- coding: utf-8 -*- ''' Created on 2018年5月15日@author: ...
- Python代码编译,py文件编译为pyc文件
介绍: 编译py文件为pyc,并且移除编译生成的文件夹和编译前的py文件 请见代码库: 点击此处获取一键编译脚本[gitee] 使用说明: 1.将需要编译的项目复制出来,放到compile_dir_a ...
- 牛逼的python代码_几段牛逼的 Python 代码理解面向对象
Python技术相关的干货加群: 227435450 Python 有什么好处?功能强大,使用简单,语言唯一性的特征明显(唯一性的意思就是你不能用十八种写法实现一个功能),而且具备海量的第三方库--P ...
- python蟒蛇代码解析_Python绘制蟒蛇代码理解
Python 绘制蟒蛇代码理解 # pythondraw.py import turtle #import 是保留字, 引入一个会图库, 名字叫做 turtle #import< 库名 > ...
- python代码转成php代码的工具 或者go转成php的代码,想把odoo改成成php swoole当成web服务+go的架构
目前市场上有一些可以将Python代码转换为PHP代码的工具,例如: Transcrypt:Transcrypt是一个将Python代码转换为JavaScript和PHP的工具.它可以将Python代 ...
- 仅用几行Python代码就能帮小姐姐复制U盘文件,实用干货
今天有个读大学的小姐姐找到我,问我有没有什么办法可以复制U盘文件,我很疑惑她复制U盘要干啥呢,仔细问了才知道小姐姐打算复制老师的U盘,看里面课件还有练习题,嗯,好学生呀,我就想直接分享出方法,大家一起 ...
最新文章
- NLP模型也有“老师”了!装上这个开源库,1毫秒纠正语法错误
- HDU 1166(线段树)
- C#字符ASCII码学习经验
- SQL语句正常,在Navicat中运行正常,但是在后台运行,无法查询出数据,也不报错...
- JavaScript框架
- platform_driver_probe与platform_driver_register的区别
- Elasticsearch CURL命令
- 国科大高级人工智能3-DNN(BM/RBM/DBN/DBM)
- 人类视觉计算理论经典著作,豆瓣评分9.7,中文版惊鸿面世!
- 申威 linux内核,一种申威防火墙快速移植高版本linux内核的方法与流程
- 只需一行代码,就能导入所有的Python库?
- java sctp_[编织消息框架][传输协议]sctp简单开发
- python单词的含义-学Python必背的初级单词,你都背了吗?
- 计算机应用技术基础 形考4,最新电大《计算机应用技术基础》形考作业任务01-03网考试题及答案...
- vos3000防火墙规则
- Python:实现蓝牙通信
- 计量经济学学习笔记:多元线性模型
- 宽带噪声干扰 matlab,噪声干扰信号及Matlab仿真.doc
- 【雅思大作文考官范文】——第十六篇:climate change essay
- 唐僧为什么可以领导孙悟空(项目管理)
热门文章
- python:计算股票 CAPM
- Openstack(T版)组件部署
- 怎么发送采集数据到网站-http接口方式
- 当今书法行业如何转型线上?
- 李纳斯是个怎样的人?
- z stat.php 源码,phpstat任意读取网站文件
- matlab x(n)16点DFT,数字信号处理课程设计参考题目
- gcc流程及鲜有人知的参数
- html添加实时视频的代码,关于添加网页视频的html代码
- 四川职业技术学院2021年计算机考纲,2021年关于公布四川省普通高校对口招生职业技能考试大纲的通知...