matplotlib画圆

您所在的位置:网站首页 eps如何画圆 matplotlib画圆

matplotlib画圆

2023-11-11 09:45| 来源: 网络整理| 查看: 265

首先需要导入所用到的第三方库

from matplotlib import pyplot as plt import numpy as np

“”" 给定圆心和半径,画圆 r :半径 x,y:圆心的坐标 “”"

def pint(r,x,y): plt.figure() # 创建一个空白窗体 plt.title('Circle') plt.xlabel('x') plt.ylabel('y') # 点的横坐标为a a = np.arange(x-r,x+r,0.000001) # 点的纵坐标为b b = np.sqrt(np.power(r,2)-np.power((a-x),2))+y plt.plot(a,b,color='r',linestyle='-') plt.plot(a,-b,color='r',linestyle='-') plt.scatter(0,0,c='b',marker='o') plt.grid(True) plt.show() pint(2,0,0) 由圆心和半径确定圆上的每一个点的x的坐标 a = np.arange(x-r,x+r,0.000001)

即x的范围在圆心坐标的x坐标加减半径内 在这里插入图片描述

面向对象编程实例化对象画圆 class Circle: r = 0 # 半径 x,y = (0,0) # 圆心 # 构造函数,初始化赋值 def __init__(self,r1,m,n): self.r = r1 self.x = m self.y = n # 方法,画圆 def pint(self): plt.figure() # 创建一个空白窗体 plt.title('Circle') plt.xlabel('x') plt.ylabel('y') # 点的横坐标为a a = np.arange(-2*np.pi,2*np.pi,0.00001) # 点的纵坐标为b b = np.sqrt(np.power(self.r,2)-np.power((a-self.x),2))+self.y plt.plot(a,b,color='r',linestyle='-') plt.plot(a,-b,color='r',linestyle='-') plt.scatter(self.x,self.y,c='b',marker='o') plt.axis([-4,4,-4,4]) plt.grid(True) plt.show() r = 2 x,y = (0,0) y = Circle(r,x,y) # 实例化一个对象 y.pint() # 调用该对象的方法进行画圆

此处用的是

a = np.arange(-2*np.pi,2*np.pi,0.00001) b = np.sqrt(np.power(self.r,2)-np.power((a-self.x),2))+self.y

圆的基本方程为:(x-x0)^2 + (y-y0)^2 =r^2 ,(x0,y0)为圆的圆心 已知x求y,则转换成b变量的式子

在这里插入图片描述

还可以用sin和cos来画圆 点的横坐标 a_x = np.arange(0,2*np.pi,0.01) a = x+r*np.cos(a_x) b = y+r*np.sin(a_x) plt.plot(a,b,coloe='r',linestyle='-' plt.plot(a,-b,color='r',linestyle='-'

在这里插入图片描述 想象一下,以该圆的左下角为原点,向右向上画x,y轴,则

x = x0+r*cosα y = y0+r*sinα 注意

有的时候,坐标轴的横纵坐标尺度不一致,导致圆变的有点椭,可以采用matplotlib中的xlim和ylim来改变坐标轴的刻度

plt.xlim(-4,4) plt.ylim(-4,4)

在这里插入图片描述 但有的时候还是看起来不那么的圆,如有妙招或有误地方欢迎评论,大家一起学习!



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3