python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python极坐标

Python绘制极坐标基向量详解

作者:微小冷

这篇文章主要介绍了如何利用python绘制极坐标的基向量,文中的示例代码讲解详细,具有一定的的参考价值,感兴趣的小伙伴可以跟随小编一起学习一下

极坐标基向量的推导

极坐标其实很神奇,一方面,它描述的是平直时空,另一方面,任意两点间的坐标差为d r , d θ \text dr, \text d\thetadr,dθ时,两点间的距离却是不固定的。极坐标到直角坐标的转换函数为

x=fx​(r,θ)=rcosθ y=fy​(r,θ)=rsinθ

考虑到行文简洁,在不引起歧义的情况下,用x,y来表示fx​,fy。

对r,θ求偏导数,就可以得到二者在转换为直角坐标是时的变化情况,则

其中

记er​=[∂x/∂r,∂y/∂r],eθ​=[∂x/∂θ,∂y/∂θ],称作极坐标系的基向量。

可以看到,这个基向量在不同的位置(x,y)处的值显然是不同的,将其带入极坐标和直角坐标的换算关系,就可以得到基向量的具体表达式,

er​=[cosθ,−rsinθ]

eθ​=[sinθ,rcosθ]

可视化

下面可以绘制一下这个基向量,采用matplotlib中的quiver函数。

import numpy as np
import matplotlib.pyplot as plt

M, N = 10, 20
r, th = np.indices([M, N])
r = r/10
th = th/N*np.pi*2


X, Y = r*np.cos(th), r*np.sin(th)

U1, V1 = np.cos(th), -r*np.sin(th)
U2, V2 = np.sin(th), r*np.cos(th)

style = dict(width=0.005, headwidth=8, headlength=6, headaxislength=4)
fig, ax = plt.subplots(1, 2, figsize=(8,4))
ax[0].quiver(X, Y, U1, V1, np.sqrt(U1**2+V1**2), **style)
ax[1].quiver(X, Y, U2, V2, np.sqrt(U2**2+V2**2), **style)
plt.tight_layout()
plt.show()

效果如下

到此这篇关于Python绘制极坐标基向量详解的文章就介绍到这了,更多相关Python极坐标内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文