Python之turtle模块-画圈圈
时间:2022-07-22
本文章向大家介绍Python之turtle模块-画圈圈,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前面我们画过正多边形。下面我们来做两个小实验,看看大家有什么感悟。
实验一
首先我们来画正四边形,正六边形,正八边形......,一直到正三十边形。
这些正多边形的外接圆的半径都是一样的。
实验二
下面再来做一个实验,我们同样画正三十边形,只是这次我们尝试不同的外接圆的半径。
实验结果
- 从实验一的结果来看,正多边形的边数越多,样子看上去越接近于圆。
- 从实验二的结果来看,虽然都是正三十边形,但是半径小的看上去更“圆润”一些,而半径大的看上去更“棱角分明”一些。
实验结论
利用turtle画圆,实际上我们可以用正多边形来无限逼近,直到人的肉眼无法分别,就算“蒙混过关了”。那不同半径的圆,究竟该用多少边的正多边形来画呢?从实验二可以看出,都是正三十边形,当半径变大后,看上去就不那么圆了,因为每条边的长度变长了。只有当每条边足够短,短到你肉眼无法分别,这才算是一个“合格”的圆。实际操作发现,当边的长度为3左右,人的肉眼就很难分辨了。
下面我们用代码来实现画圆。
import turtle
import math
def polygon(t, n, length):
# 中心角为360/n
angle = 360 / n
# 循环n次画出正n边形的n条边
for i in range(n):
# 画边
t.fd(length)
# 旋转箭头,因为旋转的角度为外角的角度,刚好也等于中心角
t.lt(angle)
def circle(t, r):
# 根据半径计算圆的周长
circumference = 2 * math.pi * r
# 这里取多边形的边长为3,计算多边形的边数,int强制转换成整数
n = int(circumference / 3) + 1
# 得到边数之后,重新计算多边形的边长,
# 得到的length这时可能是小数了
length = circumference / n
# 调用前面定义的画多边形的函数来画近似的圆
polygon(t, n, length)
# 定义一个移动的函数,参数有turtle对象,移动方向和移动距离
def move(t, direction, distance):
# 提笔,再移动不会在画布上留下痕迹
t.pu()
# 判断移动方向,fd向前,bk向后,移动相应距离
if direction == "fd":
t.fd(distance)
elif direction == "bk":
t.bk(distance)
# 放下笔,再移动会在画布上留下痕迹
t.pd()
bob = turtle.Turtle()
# 先往后移动200
move(bob, 'bk', 200)
# 循环画圆,半径从50到200,每次增加50
for r in range(50, 200, 50):
circle(bob, r)
move(bob, 'fd', 2 * r)
turtle.mainloop()
检验成果的时候到了
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法