added all files reserch

This commit is contained in:
Danamir
2025-12-03 08:59:14 +03:00
parent a592701a3c
commit bdcf20478e
15 changed files with 1051 additions and 0 deletions

61
6.py Normal file
View File

@@ -0,0 +1,61 @@
import matplotlib.pyplot as plt
import numpy as np
def draw_trapezoid_with_squares(a, b, h, square_size):
"""
Рисует трапецию с квадратами внутри.
Параметры:
a (float): Верхнее основание трапеции.
b (float): Нижнее основание трапеции.
h (float): Высота трапеции.
square_size (float): Сторона квадрата.
"""
# Функция для вычисления ширины трапеции на уровне y
def width_at_height(y):
return b - (b - a) * (y / h)
# Параметры для построения графика
fig, ax = plt.subplots()
# Стартовая высота
y = 0
# Проходим по каждому уровню, начиная с нижнего
while y < h:
# Вычисляем ширину трапеции на текущем уровне
current_width = width_at_height(y)
# Определяем левый и правый край на уровне
left_x = -(current_width / 2)
right_x = current_width / 2
# Заполняем уровень квадратами
x = left_x
while x + square_size <= right_x:
# Рисуем квадрат
square = plt.Rectangle((x, y), square_size, square_size, edgecolor='black', facecolor='blue', fill=True)
ax.add_patch(square)
x += square_size
# Если осталась неполная часть, рисуем неполный квадрат
if x < right_x:
square = plt.Rectangle((x, y), right_x - x, square_size, edgecolor='black', facecolor='blue', fill=True)
ax.add_patch(square)
# Переходим на следующий уровень
y += square_size
# Рисуем саму трапецию
trapezoid = np.array([[-b/2, 0], [b/2, 0], [a/2, h], [-a/2, h], [-b/2, 0]])
ax.plot(trapezoid[:, 0], trapezoid[:, 1], color='black')
# Настройки графика
ax.set_aspect('equal')
plt.xlim(-b/2 - 1, b/2 + 1)
plt.ylim(0, h + square_size)
plt.show()
# Пример использования
draw_trapezoid_with_squares(a=6, b=10, h=8, square_size=1)