2015-02-16 2 views
0

, так что мой вопрос заключается в том, как сделать полярный график r = f(theta) для функции f путем вычисления r для диапазона значений ofta, а затем преобразование r и theta в декартовы координаты с использованием уравнений x = r cos(theta), y = r sin(theta).Постройте спираль, где r = theta^2 для 0 <= theta <= 10 * pi ... в python

BUT Мне нужно построить спираль r = (theta)^2 для 0 <= theta <= 10*pi это то, что у меня есть до сих пор .... здесь нет спирали.

#! /usr/bin/env python 

import matplotlib.pyplot as plt 
from math import cos, sin, pi 
from numpy import linspace 

for theta in linspace(0,10*pi): 
     r = ((theta)**2) 
     x = r*cos(theta) 
     y = r*sin(theta) 


plt.plot(x,y) 
plt.savefig("spiral.png") 
plt.show() 
+1

Вы стирание переменного каждая итерации. Вы просто замышляете последнюю пару пунктов, а не рисуете серию из пары точек – jlandercy

ответ

1

Вам необходимо создать список значений, а не только одну точку. В вашем случае вы продолжаете вычислять x и y, но никогда не сохраняйте их нигде. Итак, все, что вы планируете, это пара (x,y) после последней итерации.

x = [] 
y = [] 
for theta in linspace(0,10*pi): 
    r = ((theta)**2) 
    x.append(r*cos(theta)) 
    y.append(r*sin(theta)) 

plt.plot(x,y) 
plt.show() 

Выход

Sprial

Смежные вопросы