飞道的博客

Python——绘制圆形

667人阅读  评论(0)

方法一生成圆: 

方法2生成圆:

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


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

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

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

axis('equal')

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


  
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. plt.rcParams[ 'font.sans-serif'] = [ 'SimHei'] # 用来正常显示中文标签
  4. plt.rcParams[ 'axes.unicode_minus'] = False # 用来正常显示负号
  5. # ==========================================
  6. # 圆的基本信息
  7. # 1.圆半径
  8. r = 2.0
  9. # 2.圆心坐标
  10. a, b = ( 0., 0.)
  11. # ==========================================
  12. # 方法一:参数方程
  13. theta = np.arange( 0, 2 * np.pi, 0.01)
  14. x = a + r * np.cos(theta)
  15. y = b + r * np.sin(theta)
  16. fig = plt.figure()
  17. axes = fig.add_subplot( 111)
  18. axes.plot(x, y)
  19. axes.axis( 'equal')
  20. plt.title( '圆形绘制1')
  21. # ==========================================
  22. # 方法二:标准方程
  23. x = np.arange(a - r, a + r, 0.01)
  24. y = b + np.sqrt(r ** 2 - (x - a) ** 2)
  25. fig = plt.figure()
  26. axes = fig.add_subplot( 111)
  27. axes.plot(x, y) # 上半部
  28. axes.plot(x, -y) # 下半部
  29. plt.axis( 'equal')
  30. plt.title( '圆形绘制2')
  31. # ==========================================
  32. plt.show()

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


  
  1. import turtle
  2. turtle.color( 'red')
  3. turtle.circle( 120)
  4. turtle.done()

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

Python画图之turtle模块:

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

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

turtle模块绘图思路

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


转载:https://blog.csdn.net/feng8403000/article/details/128211491
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场