import numpy as np
import csv

# Параметры трапеции
height = 200000  # Высота трапеции
top_width = 8  # Ширина верхней стороны
bottom_width = 12  # Ширина нижней стороны
depth = 8  # Глубина трапеции

# Функция для вычисления температуры в зависимости от высоты z
def calculate_temperature(z):
    # Температура изменяется от 0°C у основания до 100°C на вершине
    return 100 * (z / height)

# Имя файла для сохранения данных
filename = "trapezoid_cubes_data.csv"

# Открываем файл для записи
with open(filename, mode='w', newline='') as file:
    writer = csv.writer(file)
    # Записываем заголовки столбцов
    writer.writerow(["x", "y", "z", "temperature"])

    # Заполняем трапецию кубиками 1x1x1 см
    for z in range(height):
        # Линейная интерполяция для ширины на каждом уровне высоты
        width = top_width + (bottom_width - top_width) * (height - z) / height
        x_min = (bottom_width - width) / 2
        x_max = x_min + width
        temperature = calculate_temperature(z)
        
        for x in range(int(x_min), int(x_max)):
            for y in range(depth):
                # Записываем координаты центра кубика и его температуру
                writer.writerow([x + 0.5, y + 0.5, z + 0.5, temperature])

print(f"Данные успешно сохранены в файл {filename}")
