基于python分享极坐标下的几类典型曲线
作者:帅帅de三叔 发布时间:2023-05-02 18:18:37
导言:
忽然发现数学家还是很擅长发明新玩意构造新东西的,如很早的欧几里得几何体系,后来的笛卡尔直角坐标系,还有极坐标系,埃尔朗根纲领,一门学科的发展需要一代又一代的人前赴后继为其添砖加瓦,筑成一座大厦,今天我们来简单介绍一下极坐标系。
一、极坐标
极坐标系统是一套区别于笛卡尔直角坐标系的二维坐标系统,它是指在平面内取一个定点O,然后从O点引一条射线Ox,再选定一个长度单位和角度的正方向(通常取逆时针方向)而张成的一张平面角称为极坐标系统,简称极坐标。其中,点O叫极点,射线Ox叫做极轴,对于平面内任何一点M,用ρ表示线段OM的长度,θ表示从Ox到OM的角度,那么,点M就可以用有序数对 (ρ,θ)来表示,该有序数对就叫点M的极坐标,其中,ρ叫做点M的极径,θ叫做点M的极角。
二、直角坐标系与极坐标互换
在笛卡尔直角坐标系里,任何一点M都可以用一对有序数对(x,y)来表示,其中x叫做点M的横坐标,y叫做点M的纵坐标,这与在极坐标里任何一点可以用极径和极角构成的有序数对 (ρ,θ)来表示类似,这是一种巧合还是一种必然呢?其实极坐标和笛卡尔直角坐标系是可以进行坐标转换的,具体的
(i)极坐标转笛卡尔直角坐标系
已知线段OM的长度为ρ,从M点向x轴和y轴引垂线,设垂足分别是A,B,那么
这样,点M在笛卡尔直角坐标系就可以用有序数对(ρcosθ,ρsinθ)来表示。
(ii)笛卡尔直角坐标系转极坐标
已知点M的坐标为(x,y),那么可以求出OM与x轴的夹角
特别的,当x=0时,θ=90°或270°,这样点M在极坐标系就可以用有序数对
笛卡尔直角坐标系与极坐标系各有其优点,我们平时使用笛卡尔直角坐标系更多些也会更习惯些,但是在有些时候使用极坐标系会更简便些,如两点间的关系用夹角和距离会更容易表示,一些曲线方程,极坐标系下的方程的表达形式更简单些,如双扭线,心形线等。
三、几类典型的极坐标方程
圆:
心形线:
玫瑰线:
阿基米德螺线:
双扭线:
四、代码绘制几类典型极坐标方程图像
圆:
import matplotlib.pyplot as plt #导入绘图模块
import math #导入数学模块
thetas =[] #用来存放极角
rhos = [] #用来存放极径
for i in range(0, 361):
theta = math.pi/180*i #角度转弧度
rho = 1
thetas.append(theta)
rhos.append(rho)
fig = plt.figure() #新建画布
plt.polar(thetas, rhos, color = "red") #极坐标画图
plt.show()
心形线:
import matplotlib.pyplot as plt #导入绘图模块
import math #导入数学模块
thetas =[] #用来存放极角
rhos = [] #用来存放极径
for i in range(0, 361):
theta = i*math.pi/180 #角度转弧度
rho = 1- math.cos(theta) #极径
thetas.append(theta)
rhos.append(rho)
fig = plt.figure() #新建画布
plt.polar(thetas, rhos, color = "red") #极坐标画图
plt.show()
玫瑰线:
import matplotlib.pyplot as plt #导入绘图模块
import math #导入数学模块
thetas =[] #用来存放极角
rhos = [] #用来存放极径
for i in range(0, 361):
theta = i*math.pi/180 #角度转弧度,极角
rho = math.cos(6*theta) #极径
thetas.append(theta)
rhos.append(rho)
fig = plt.figure() #新建画布
plt.polar(thetas, rhos, color = "red") #极坐标画图
plt.show()
阿基米德螺线:
import matplotlib.pyplot as plt #导入绘图模块
import math #导入数学模块
thetas =[] #用来存放极角
rhos = [] #用来存放极径
for i in range(0, 721):
theta = i*math.pi/180
rho = 0+2*theta
thetas.append(theta)
rhos.append(rho)
fig = plt.figure() #新建画布
plt.polar(thetas, rhos, color = "red") #极坐标画图
plt.show()
双扭线:
import matplotlib.pyplot as plt #导入绘图模块
import math #导入数学模块
thetas =[] #用来存放极角
rhos = [] #用来存放极径
for i in range(0, 361):
theta = i*math.pi/180
rho = math.sqrt(2)*(math.cos(2*theta))**(1/2)
thetas.append(theta)
rhos.append(rho)
fig = plt.figure() #新建画布
plt.polar(thetas, rhos, color = "red") #极坐标画图
plt.show()
来源:https://blog.csdn.net/zengbowengood/article/details/123151616
猜你喜欢
- 作为一个诞生已有 30 余年的编程语言,Python 的流行度在近几年迎来了 * 性的增长。为了方便大家能够更好的采用 Python,利用该语
- Mako是一个高性能的Python模板库,它的语法和API借鉴了很多其他的模板库,如Django、Jinja2等等。基本用法创建模板并渲染它
- 例题取用登录模块:代码如下def login_check(username,password):''' 登录校验的函
- 1. 换源,sohu的相当好用。 1.1备份CentOS-Base.repo cd /etc/yum.repos.d/ cp CentOS-
- 对数学家来说,Python这门语言有着很多吸引他们的地方。举几个例子:对于tuple、lists以及sets等容器的支持,使用与传统数学类似
- session请求过程当第一次访问网站时,Seesion_start()函数就会创建一个唯一的Session ID,并自动通过HTTP的响应
- 今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下。 本篇博客主
- 前言:网上搜到了一些关于手势处理的实验,我在这儿简单的实现一下,主要运用的知识就是opencv,python基本语法,图像处理基础知识。获取
- Bootstrap提供了四种用于<img>类的样式,分别是:.img-rounded:圆角 (IE8 不支持),添加 borde
- 目前很多网站都使用ajax技术动态加载数据,和常规的网站不一样,数据时动态加载的,如果我们使用常规的方法爬取网页,得到的只是一堆html代码
- 这篇文章是为了对网络模型的权重输出,可以用来转换成其他框架的模型。import tensorflow as tffrom tensorflo
- 准备正常情况下,创建class的实例后,可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。首先定义一个classclass A(obj
- 近期在做爬虫时有时会遇到网站只提供pdf的情况,这样就不能使用scrapy直接抓取页面内容了,只能通过解析PDF的方式处理,目前的解决方案大
- 如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用URL地址。下面的方法可以解决该问题:UR
- 大家好,本文将分享如何使用matplotlib制作动态条形图,制作的图很美,这个是我在之前发布的一篇中使用的图片,效果如下制作思路为了方便大
- 在JavaScript开发中,被人问到:null与undefined到底有啥区别?一时间不好回答,特别是undefined,因为这涉及到un
- Mysqli是php5之后才有的功能,没有开启扩展的朋友可以打开您的php.ini的配置文件。 查找下面的语句:;extension=php
- 摘要:python的设计核心原则就是简洁——在这种原则的指导下,诞生了lambda表达式和偏函数:二者都让函数调用变得简洁。本文主要为你介绍
- 本文实例讲述了Python扫描IP段查看指定端口是否开放的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/local/bin/p
- 本文实例讲述了python实现从尾到头打印单链表操作。分享给大家供大家参考,具体如下:# coding=utf-8class SingleN