matlab画笛卡尔心形线,爱心极坐标方程

《张宇基础30讲》第一讲的几张极坐标图象,这里用Python来实现一下,加深理解,并学习绘制极坐标图像。

1.笛卡尔心形线

公式:

import numpy as np

import matplotlib.pyplot as plt

# 心形线

a = 1

theta = np.linspace0, 2*np.pi, 1000)

r = a*1 – np.costheta))

plt.axespolar = True)

plt.plottheta, r)

plt.show)

np.linspace来选取0到2π的1000个点,计算r,polar=True 为极坐标图

扩展调试

我们改变a和cos的正负,怎么样,发现规律了吗?

a负 cos 负

a正 cos 正

我们再来将cos替换为sin

r = a*1 – np.sintheta))

2.玫瑰线

# 玫瑰线

a = 1

theta = np.linspace0, 2*np.pi, 1000)

r = a* np.sin3*theta)

plt.axespolar = True)

plt.plottheta, r)

plt.show)

扩展调试

尝试吧 3theta 变为10,秒变菊花线,可看出玫瑰线的瓣数与theta参数相同

r = a* np.sin10*theta)

3.阿基米德螺线

# 阿基米德螺线

a = 1

theta = np.linspace0, 10*np.pi, 1000)

r = a * theta

plt.axespolar = True)

plt.plottheta, r)

plt.show)

扩展调试

当我们改变 π 前面的参数,旋转的圈数也在变化

而改变a的正负时,顺逆时针发生变化

r = -a * theta

4.伯努利双纽线

a = 1

theta = np.linspace0, 2*np.pi, 1000)

r = np.sqrt2*a**2)*np.cos2*theta))

plt.axespolar = True)

plt.plottheta, r)

plt.show)

拓展调试

现在我们将 2theta 变成 3theta 看一下

r = np.sqrt2*a**2)*np.cos3*theta))

是不是很熟悉? 跟上面的玫瑰线很相似。

我们将cos改成sin试一下

r = np.sqrt2*a**2)*np.sin3*theta))

这下可是一模一样了,其3分快三计划er”>

扩展调试

当我们改变 π 前面的参数,旋转的圈数也在变化

而改变a的正负时,顺逆时针发生变化

r = -a * theta

4.伯努利双纽线

a = 1

theta = np.linspace0, 2*np.pi, 1000)

r = np.sqrt2*a**2)*np.cos2*theta))

plt.axespolar = True)

plt.plottheta, r)

plt.show)

拓展调试

现在我们将 2theta 变成 3theta 看一下

r = np.sqrt2*a**2)*np.cos3*theta))

是不是很熟悉? 跟上面的玫瑰线很相似。

我们将cos改成sin试一下

r = np.sqrt2*a**2)*np.sin3*theta))

这下可是一模一样了,其实我们看两个公式也可以看出来,本质都为  r = n cos 或者 r = n sin

所以本质上伯努利双纽线和玫瑰线是一个东西

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注