Как построить параметрическую диаграмму циклоиды? - PullRequest
2 голосов
/ 06 августа 2020

Я нахожусь в начале класса python, и я должен построить эту циклоиду , используя подзаголовки. Мне дали циклоиду в форме параметра c и сказали оставить ее в этой форме.

Вот уравнения, которые мне дали:

x = r (θ − sin θ )

y = r (1 − cos θ )

r должно быть пользовательский ввод в мою функцию.

Я не понимаю, как определить тета, или как построить параметрический график . Большое спасибо !!

Вот код, который у меня есть:

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)

1 Ответ

1 голос
/ 06 августа 2020
# 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

Вы можете изменить разрешение графика, изменив «100» в параметрах np.linspace. Попробуйте установить очень низкий (5), а затем очень высокий (1000), чтобы увидеть разницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...