如何在笛卡尔坐标系中绘制波纹圆?

2024-10-03 17:21:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种用Python绘制corrugated circle的方法。 Corrugated circle 我的尝试没有产生正确的输出:

from matplotlib import pyplot as plt
import numpy as np
from math import pi

x=np.linspace(-10,10,100)
y=x

X, Y = np.meshgrid(x,y)

circle = (X-np.cos(2*pi*0.2*Y))**2 + (Y-np.sin(2*pi*0.2*X))**2 - 5.

plt.contour(X,Y,circle,[0])
plt.show()

theta = np.linspace(-pi,pi,100)
courbure = np.sin(theta*10)

plt.plot(theta,courbure)
plt.show()
    
circle2 = (X-(courbure*np.cos(theta)))**2 + (Y-np.sin(theta)*courbure)**2 - courbure**2
plt.contour(X,Y,circle2)
plt.show()

Attempt at drawing a corrugated circle

多谢各位


Tags: fromimportasshownppipltsin
1条回答
网友
1楼 · 发布于 2024-10-03 17:21:12

我用频率为egal到10的正弦波绘制了一个波纹圆。半径在0.9 et 1之间振荡。因为我取鼻窦的负绝对部分。振幅除以10

为了增加波纹,你必须增加频率。 这里f=10

from matplotlib import pyplot as plt
import numpy as np
from math import pi

x=np.linspace(-10,10,1000)
y=x

X, Y = np.meshgrid(x,y)

circle = (X)**2 + (Y)**2 - (1+ -np.abs(np.sin(np.arctan(Y/X)*10))/10)

plt.contour(X,Y,circle)
plt.show()

相关问题 更多 >