首页 > 编程语言 >阿基米德螺线和花瓣曲线的Python绘制

阿基米德螺线和花瓣曲线的Python绘制

时间:2023-11-01 10:24:52浏览次数:41  
标签:阿基米德 draw plt 200 Python 螺线 np theta

from matplotlib import pyplot as plt
import numpy as np

def plt_draw_dynamic(x, y):
    for i in range(x.shape[0]):
        plt.pause(0.001)
        plt.cla()
        plt.xlim((-200, 200))
        plt.ylim((-200, 200))
        plt.plot(x[:i], y[:i])
    plt.draw()

def draw_polar_rose():
    """
    花瓣曲线,https://zh.wikipedia.org/wiki/%E6%9E%81%E5%9D%90%E6%A0%87%E7%B3%BB
    """
    theta = np.arange(-np.pi, np.pi, 0.001)
    a = 10
    # 当k是偶数时曲线将是2k个花瓣,如果k为非整数,将产生圆盘状图形,且花瓣数也为非整数
    k = 15.5
    r = a * np.cos(k * theta)
    x = r * np.cos(theta)
    y = r * np.sin(theta)
    plt_draw_dynamic(x, y)
    # plt.plot(x, y)
    # plt.show()

def draw_ajmd_curve():
    """
    阿基米德螺线,
    改变参数a将改变螺线形状,b控制螺线间距离,通常其为常量。
    阿基米德螺线有两条螺线,一条θ>0,另一条θ<0。两条螺线在极点处平滑地连接。把其中一条翻转 90°/270°得到其镜像,就是另一条螺线。
    """
    theta = np.arange(0, 6 * np.pi, 0.001*6*np.pi)
    a = 0.1
    b = 10
    r = a + b * theta
    x = r * np.cos(theta)
    y = r * np.sin(theta)
    plt_draw_dynamic(x, y)
    # plt.plot(x, y)
    # plt.show()


if __name__ == '__main__':
    draw_ajmd_curve()

 

标签:阿基米德,draw,plt,200,Python,螺线,np,theta
From: https://www.cnblogs.com/lzqdeboke/p/17802419.html

相关文章

  • python深浅拷贝学习
    copy的原文链接(仅供自己学习查看):python浅析格式化输出和深浅copy-战争热诚-博客园(cnblogs.com) 首先我们从切片技术说起。它应用于所有的序列,包括:列表,字符串,元祖。但是切片不能应用于字典,对于字典只能使用D.copy()和D.deepcopy()方法。下面具体说一下深......
  • 带有最小间隔时间的队列读取实现 —— Python异步编程
     (注:照片源自免费网站,地址:https://www.freepik.com/photos/angry-panda/13)  ==================================================   ==================================================......
  • Python求Π
    fromrandomimportrandomfrommathimportsqrtfromtimeimportperf_counterimporttime#进度条print("2022310143117")foriinrange(1,101):print("\r",end="")print("进度:{}%:".format(i),"▓"*(i//......
  • 如何在linux系统中安装python3.8.1 并卸载 python3.6.2 更新python3引导到3.8.1
    安装python3.8.1步骤1:检查Python版本在终端中输入以下命令来检查当前安装的Python版本:python--version步骤2:安装编译Python所需的依赖项更新系统软件包,并安装构建Python所需的一些工具和库。在终端中运行以下命令:sudoaptupdatesudoapt-getinstall-ybuild-essen......
  • 【爬虫实战】用Python采集任意小红书笔记下的评论,爬了10000多条,含二级评论!
    目录一、爬取目标二、爬虫代码讲解2.1分析过程2.2爬虫代码三、演示视频一、爬取目标您好!我是@马哥python说,一名10年程序猿。我们继续分享Python爬虫的案例,今天爬取小红书上指定笔记("巴勒斯坦"相关笔记)下的评论数据。老规矩,先展示结果:截图1:截图2:截图3:共爬取了1w多条"......
  • python求Π
    fromrandomimportrandomfromtimeimportperf_counterpi=0N=100start=perf_counter()forkinrange(N):pi+=1/pow(16,k)*(4/(8*k+1)-2/(8*k+4)-1/(8*k+5)-1/(8*k+6))print('公式法:')print("圆周率值是{}......
  • 使用Python批量发送个性化邮件
    前言在现代工作环境中,我们经常需要向多个收件人发送个性化的邮件。通过使用Python编程语言,我们可以自动化这个过程,从Excel文件中读取收件人和相关数据,并发送定制的邮件。首先,导入所需的库:importpandasaspdimportsmtplibfromemail.mime.multipartimportMIMEMultipart......
  • Python算圆周率
    importsysimporttimedefprogress_bar():    foriinrange(1,101):        print("\r",end="")        print("Downloadprogress:{}%:".format(i),"▋"*(i//2),end="")        s......
  • Python 数学函数和 math 模块指南
    Python提供了一组内置的数学函数,包括一个广泛的数学模块,可以让您对数字执行数学任务。内置数学函数。min()和max()函数可用于在可迭代对象中查找最低或最高值:示例:查找可迭代对象中的最低或最高值:x=min(5,10,25)y=max(5,10,25)print(x)print(y)abs()函数返回......
  • python、R语言ARIMA-GARCH分析南方恒生中国企业ETF基金净值时间序列分析
    全文链接:https://tecdat.cn/?p=34123原文出处:拓端数据部落公众号分析师:YuyanWang虽然中国股票市场日益完善,但还不完全是弱有效市场,因此中国股票市场存在比较明显的通过技术分析达到的套利机会。解决方案任务/目标根据基金净值的要求,运用多种模型分析实现股票走势的预测。......