如何参数化地绘制摆线?
How do I plot a cycloid parametrically?
我刚开始 python class,我应该使用子图来绘制这个 cycloid。我得到了参数形式的摆线,并告诉我将其保留为该形式。
这是我得到的方程式:
x = r (θ − sin θ )
y = r (1 − cos θ )
r
应该是我函数中的用户输入。
我不明白如何定义 theta,或者 how to plot parametrically。非常感谢!!
这是我目前的代码:
import matplotlib.pyplot as plt
import sympy as sp
def cycloid(r):
x = r(theta - sp.sin(theta))
y = r(1 - sp.cos(theta))
sp.plot_parametric(x, y, (r, -2*sp.pi, 2*sp.pi))
plt.show()
cycloid(5)
# Various imports
import matplotlib.pyplot as plt
from math import sqrt, cos, sin
import numpy as np
def cycloid(r):
x = [] #create the list of x coordinates
y = [] #create the list of y coordinats
for theta in np.linspace(-2*np.pi, 2*np.pi, 100): #loop over a list of theta, which ranges from -2π to 2π
x.append(r*(theta - sin(theta))) #add the corresponding expression of x to the x list
y.append(r*(1 - cos(theta))) #same for y
plt.plot(x,y) #plot using matplotlib.piplot
plt.show() #show the plot
cycloid(5) #call the function
您可以通过更改 np.linspace
参数中的“100”来更改绘图的分辨率。尝试将其设置为非常低 (5) 然后非常高 (1000) 以查看差异。
我刚开始 python class,我应该使用子图来绘制这个 cycloid。我得到了参数形式的摆线,并告诉我将其保留为该形式。
这是我得到的方程式:
x = r (θ − sin θ )
y = r (1 − cos θ )
r
应该是我函数中的用户输入。
我不明白如何定义 theta,或者 how to plot parametrically。非常感谢!!
这是我目前的代码:
import matplotlib.pyplot as plt
import sympy as sp
def cycloid(r):
x = r(theta - sp.sin(theta))
y = r(1 - sp.cos(theta))
sp.plot_parametric(x, y, (r, -2*sp.pi, 2*sp.pi))
plt.show()
cycloid(5)
# Various imports
import matplotlib.pyplot as plt
from math import sqrt, cos, sin
import numpy as np
def cycloid(r):
x = [] #create the list of x coordinates
y = [] #create the list of y coordinats
for theta in np.linspace(-2*np.pi, 2*np.pi, 100): #loop over a list of theta, which ranges from -2π to 2π
x.append(r*(theta - sin(theta))) #add the corresponding expression of x to the x list
y.append(r*(1 - cos(theta))) #same for y
plt.plot(x,y) #plot using matplotlib.piplot
plt.show() #show the plot
cycloid(5) #call the function
您可以通过更改 np.linspace
参数中的“100”来更改绘图的分辨率。尝试将其设置为非常低 (5) 然后非常高 (1000) 以查看差异。