Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы / лаб1 / beli

.py
Скачиваний:
0
Добавлен:
29.09.2025
Размер:
2.26 Кб
Скачать
import numpy as np
import matplotlib.pyplot as plt

# Данные для зеленого светодиода
theta_deg_full = np.array([0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180])
I_microA_full = np.array([3.3, 4.5, 5.2, 4.8, 6.1, 6.2, 23.3, 44, 68, 75.5, 68, 44, 23.3, 6.2, 6.1, 4.8, 5.2, 4.5, 3.3])
# Преобразуем углы в радианы для полярной системы
theta_rad_full = np.deg2rad(theta_deg_full)

# Половинное значение тока
I_max = max(I_microA_full)
I_half = I_max * 0.5

# Найдем индексы, при которых ток больше или равен половине максимального значения
above_half_indices = np.where(I_microA_full >= I_half)[0]

# Определяем диапазон для заливки
theta_half_min_index = above_half_indices[0]
theta_half_max_index = above_half_indices[-1]

# Углы для половинного уровня в радианах
theta_half_range = theta_rad_full[theta_half_min_index:theta_half_max_index+1]

# Построение полярного графика
plt.figure(figsize=(8, 8))
ax = plt.subplot(111, polar=True)
ax.plot(theta_rad_full, I_microA_full, marker='o', linestyle='-', color='green', label='Белый светодиод')

# Заливка области между theta_half_min и theta_half_max, радиус на уровне I_half
ax.fill_between(theta_rad_full, 0, I_half, where=(theta_rad_full >= theta_rad_full[theta_half_min_index]) & (theta_rad_full <= theta_rad_full[theta_half_max_index]), color='red', alpha=0.5, label=r'$\theta_{0.5}$')

# Настройки графика
ax.set_title("Диаграмма направленности излучения для белого светодиода", fontsize=14)
ax.set_theta_direction(-1) # Обратное направление для соответствия привычным графикам
ax.set_theta_offset(np.pi / 2) # Начало отсчета с 90 градусов
ax.grid(True)

# Показ легенды с указанием ширины диаграммы направленности
plt.legend()
plt.show()
Соседние файлы в папке лаб1