如何参数化地绘制摆线?

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) 以查看差异。