Полярный сюжет — трансформация грехаPython

Программы на Python
Ответить
Anonymous
 Полярный сюжет — трансформация греха

Сообщение Anonymous »

Я хочу построить очень простую функцию, которая будет выглядеть как простая синусоидальная функция f(x) = r + n* sin(n*x) в декартовой координатной плоскости.
Учитывая это, теперь я хочу построить это в полярном графике - в идеале как синусоидальную волну по круговой траектории.
Это мой код

Код: Выделить всё

import numpy as np
import matplotlib.pyplot as plt

n_theta = 500
theta = np.linspace(0, 2 * np.pi, n_theta)

def inner(theta, n_petals, amplitude, base_radius):
return base_radius + amplitude * np.cos(n_petals * theta)

inner_bc = inner(theta, n_petals=5, amplitude=2, base_radius=5)

# Create polar plot
plt.figure(figsize=(6, 6))
ax = plt.subplot(111, projection='polar')
ax.grid(True)
ax.plot(theta, inner_bc, color='red', linewidth=0.8)
plt.show()
но здесь есть ошибка: он сжимается при уменьшении r и расширяется при увеличении r, а это означает, что лепестки будут более закругленными при большем r и острее при меньшем r, что создает график, который не сохраняет углы волны греха.
Изображение

Может ли кто-нибудь предложить способ исправить эту функцию, чтобы она правильно рисовала график? Я предполагаю, что преобразование x-y в r-тета должно быть правильно учтено, только в радиальном направлении, но я не мог понять, как это сделать правильно. Может ли кто-нибудь пролить свет на этот вопрос?

Подробнее здесь: https://stackoverflow.com/questions/796 ... sformation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»