Python绘制圆形方法及turtle模块详解

 更新时间:2023年12月12日 08:59:48   作者:红目香薰  
这篇文章主要给大家介绍了关于Python绘制圆形方法及turtle模块详解的相关资料,Turtle库是Python语言中一个很流行的绘制图像的函数库,文中介绍的非常详细,需要的朋友可以参考下

方法一生成圆: 

方法二生成圆:

这里我们使用的是【matplotlib】生成的,但是我用的是中文的title,故而里需要单独加上两句话:

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

有了这两句话,我们在显示的时候就能正常的显示在面板上了。 

我们使用axis('equal')可以是轴向的x轴与y轴都相等,这样才能画出一个更好的圆。

axis('equal')

下面是我们以r=2作为半径,a,b=(0.,0.)为圆心坐标的方式进行圆的绘制,我这里使用了两种方法进行计算,相对来说难度都不大,但是一个是使用con与sin进行绘制的,另外的第二个使用的是sqrt开根号的方式进行绘制的,过程中我们要注意所有的变量都是浮点数,如果只进行整数计算在单位坐标内是很难绘制出来一个比较好看圆的。

import numpy as np
import matplotlib.pyplot as plt
 
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
# ==========================================
# 圆的基本信息
# 1.圆半径
r = 2.0
# 2.圆心坐标
a, b = (0., 0.)
# ==========================================
# 方法一:参数方程
theta = np.arange(0, 2 * np.pi, 0.01)
x = a + r * np.cos(theta)
y = b + r * np.sin(theta)
fig = plt.figure()
axes = fig.add_subplot(111)
axes.plot(x, y)
axes.axis('equal')
plt.title('圆形绘制1')
# ==========================================
# 方法二:标准方程
x = np.arange(a - r, a + r, 0.01)
y = b + np.sqrt(r ** 2 - (x - a) ** 2)
fig = plt.figure()
axes = fig.add_subplot(111)
axes.plot(x, y)  # 上半部
axes.plot(x, -y)  # 下半部
plt.axis('equal')
plt.title('圆形绘制2')
# ==========================================
plt.show()

其实最简单的圆还得看下面这个:这里我们使用的是turtle,直接利用自身所带的函数color设置颜色,circle就是设置圆的半径,最后显示就行。很痛快的。

import turtle
turtle.color('red')
turtle.circle(120)
turtle.done()

这个圆是相当于手绘的过程。效果还是很好的。 

Python画图之turtle模块:

在中国电子学会组织的“全国青少年软件编程等级考试”Python一级考纲里要求考生知道turtle库的功能,知道如何导入该库文件,掌握它的使用方法:前进、后退、左右转、提落笔、画点、画圆等。

turtle,中文是海龟,所以我们有时也称叫海龟作图。

turtle模块绘图思路

  • 首先导入turtle模块;
  • 起始默认位置被设定在(0,0)处,即窗口的中心(起始位置可以设置),且绘制方向是从左往右;
  • turtle模块是模拟用笔绘制图形的,默认笔是向下的(turtle.pendown()),好像笔尖放在纸上一样;
  • 开始画图时,设置笔向下,按照要求移动绘制图形。
  • 绘制结束,将笔抬起turtle.penup()

附:绘制同心圆的代码

import turtle

#以坐标为(0,10)为共同的圆心
turtle.color('red')
turtle.circle(10)

turtle.penup()
turtle.goto(0,-30)
turtle.down()
turtle.color('green')
turtle.circle(40)

turtle.penup()
turtle.goto(0,-70)
turtle.down()
turtle.color('blue')
turtle.circle(80)

turtle.penup()
turtle.goto(0,-170)
turtle.down()
turtle.color('black')
turtle.circle(180)

turtle.done()
'''
import turtle

    #这里使用了列表来存放圆的颜色和半径
    #这里使用turtle.goto(x,y)让画笔移动,从而达到实现同心圆的绘制
    #以坐标为(0,0)为共同的圆心

color = ['red','green','blue','black']#存放圆的颜色
r = [10,40,80,160]#存放圆的半径
for i in range(4):
    turtle.penup()
    turtle.goto(0, -r[i])
    turtle.pendown()
    turtle.pencolor(color[i])
    turtle.circle(r[i])

turtle.done()

'''

总结

到此这篇关于Python绘制圆形方法及turtle模块的文章就介绍到这了,更多相关Python绘制圆形内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python字符串对象实现原理详解

    Python字符串对象实现原理详解

    这篇文章主要介绍了Python字符串对象实现原理详解,在Python世界中将对象分为两种:一种是定长对象,比如整数,整数对象定义的时候就能确定它所占用的内存空间大小,另一种是变长对象,在对象定义时并不知道是多少,需要的朋友可以参考下
    2019-07-07
  • Python文字截图识别OCR工具实例解析

    Python文字截图识别OCR工具实例解析

    这篇文章主要介绍了Python文字截图识别OCR工具实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python之时间和日期使用小结

    Python之时间和日期使用小结

    这篇文章主要介绍了Python之时间和日期使用小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Python中match的具体使用

    Python中match的具体使用

    在Python 3.10中引入了一个match语句,其类似于其他语言(eg:C,JAVA)中的switch或case语句,本文就来介绍一下Python中match的具体使用,感兴趣的可以了解一下
    2023-11-11
  • pythonfor循环中range与len区别

    pythonfor循环中range与len区别

    这篇文章主要介绍了pythonfor循环中range与len区别,文章围绕主题展开详细的内容介绍,具有一定参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • pytorch中torch.max和Tensor.view函数用法详解

    pytorch中torch.max和Tensor.view函数用法详解

    今天小编就为大家分享一篇pytorch中torch.max和Tensor.view函数用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python的pip在命令行无法使用问题的解决方法

    Python的pip在命令行无法使用问题的解决方法

    PIP是通用的Python包管理工具,提供了对 Python 包的查找、下载、安装、卸载、更新等功能,安装诸如Pygame、Pymysql等Python包时,都要用到pip,许多人在第一次使用pip的时候都会出现'pip' 不是内部或外部命令,所以本文介绍了Python的pip在命令行无法使用问题的解决方法
    2025-05-05
  • 对Django中static(静态)文件详解以及{% static %}标签的使用方法

    对Django中static(静态)文件详解以及{% static %}标签的使用方法

    今天小编就为大家分享一篇对Django中static(静态)文件详解以及{% static %}标签的使用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • pandas按某2列进行分层随机抽样的实现

    pandas按某2列进行分层随机抽样的实现

    本文主要介绍了pandas按某2列进行分层随机抽样的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • python中的十大%占位符对应的格式化的使用方法

    python中的十大%占位符对应的格式化的使用方法

    本文主要介绍了python中的十大%占位符对应的格式化的使用方法,它可以很好的帮助我们解决一些字符串格式化的问题, 文中通过示例代码介绍的非常详细,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论