Добавить новость

МИД: Россия готова нормализовать отношения с Грузией, если к этому готов Тбилиси

Стало известно, кто из судей пробежал больше всех в 17-м туре РПЛ

Нежилое заброшенное здание снесли в Солнечногорске

Политолог Дудаков: посетивший Москву Такер Карлсон стал эмиссаром Трампа



Новости сегодня

Новости от TheMoneytizer

Доработать код с диаграммой Вороного, импортировав визуализацию в gmsh

есть такой код:
import numpy as np
import pyvista as pv
from scipy.spatial import Voronoi
import matplotlib.colors as mcolors

# Установка seed для воспроизводимости результатов
np.random.seed(14)
# Количество генераторов
n_points = 10
# Толщина стенок ячейки
wall_thickness = 1.0

def generate_points(n_points, cube_size=1.0):
"""
Генерация случайных точек внутри куба
:param n_points: количество точек
:param cube_size: размер куба
:return: массив точек размером (n_points, 3)
"""
return np.random.random((n_points, 3)) * cube_size

def create_voronoi_diagram(points):
"""
Создание диаграммы Вороного
:param points: массив точек
:return: объект Voronoi
"""
# Добавляем далекие точки для ограничения диаграммы
center = np.mean(points, axis=0)
radius = 2.0
extra_points = []
for d in range(3):
for sign in [-1, 1]:
point = np.copy(center)
point[d] = center[d] + radius * sign
extra_points.append(point)

points_with_extras = np.vstack((points, extra_points))
return Voronoi(points_with_extras)

def analyze_voronoi_cells(vor):
"""
Анализ ячеек Вороного
:param vor: объект Voronoi
"""
print("\nАнализ ячеек Вороного:")
for i, region in enumerate(vor.regions):
if len(region) > 0 and -1 not in region: # Пропускаем пустые регионы и регионы с бесконечными вершинами
print(f"\nЯчейка {i}:")
print("Вершины:")
vertices = vor.vertices[region]
for j, vertex in enumerate(vertices):
print(f" Вершина {j}: ({vertex[0]:.3f}, {vertex[1]:.3f}, {vertex[2]:.3f})")

# Проверка пересечения с границами куба
if np.any(vertices < 0) or np.any(vertices > 1):
print(" Ячейка пересекает границы куба")

def visualize_voronoi_3d(vor, points, wall_thickness=1.0):
"""
Визуализация 3D диаграммы Вороного
:param vor: объект Voronoi
:param points: исходные точки
:param wall_thickness: толщина стенок ячеек (float, по умолчанию 1.0)
"""
# Создаем плоттер
plotter = pv.Plotter()

# Создаем куб
cube = pv.Box(bounds=(0, 1, 0, 1, 0, 1))
plotter.add_mesh(cube, style='wireframe', color='black', line_width=2)

# Добавляем исходные точки
point_cloud = pv.PolyData(points)
plotter.add_mesh(point_cloud, color='red', point_size=10, render_points_as_spheres=True)

# Добавляем ячейки Вороного
colors = list(mcolors.TABLEAU_COLORS.values())
for i, region in enumerate(vor.regions):
if len(region) > 0 and -1 not in region: # Пропускаем пустые регионы и регионы с бесконечными вершинами
vertices = vor.vertices[region]
# Создаем выпуклую оболочку для ячейки
cell = pv.PolyData(vertices).delaunay_3d()
# Обрезаем ячейку по границам куба
cell = cell.clip_box((0, 1, 0, 1, 0, 1), invert=False)
if cell.n_points > 0: # Проверяем, осталась ли ячейка после обрезки
# Добавляем ячейку с случайным цветом и прозрачностью
plotter.add_mesh(cell, color=colors[i % len(colors)], opacity=0.3)
# Добавляем каркас ячейки с заданной толщиной
edges = cell.extract_feature_edges()
plotter.add_mesh(edges, color='black', line_width=wall_thickness)

# Настройка камеры и отображение
plotter.camera_position = 'iso'
plotter.show()

def main():
# Генерация точек
points = generate_points(n_points)

# Создание диаграммы Вороного
vor = create_voronoi_diagram(points)

# Анализ ячеек
analyze_voronoi_cells(vor)

# Визуализация
visualize_voronoi_3d(vor, points, wall_thickness)

if __name__ == "__main__":
main()

надо сделать так чтобы визуализация этого кода была в gmsh

Читайте на 123ru.net


Новости 24/7 DirectAdvert - доход для вашего сайта



Частные объявления в Вашем городе, в Вашем регионе и в России



Smi24.net — ежеминутные новости с ежедневным архивом. Только у нас — все главные новости дня без политической цензуры. "123 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. Smi24.net — облегчённая версия старейшего обозревателя новостей 123ru.net. Мы не навязываем Вам своё видение, мы даём Вам срез событий дня без цензуры и без купюр. Новости, какие они есть —онлайн с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии. Smi24.net — живые новости в живом эфире! Быстрый поиск от Smi24.net — это не только возможность первым узнать, но и преимущество сообщить срочные новости мгновенно на любом языке мира и быть услышанным тут же. В любую минуту Вы можете добавить свою новость - здесь.




Новости от наших партнёров в Вашем городе

Ria.city

В кинопарке «Москино» покажут масштабное мультимедийное шоу «Соборная площадь»

Судебные приставы Подмосковья депортировали 4617 незаконных мигрантов за год

Чем заняться в День гостей в центрах московского долголетия?

В РПЦ раскритиковали слова священника о праве духовенства на богатую жизнь

Музыкальные новости

«Ахмат» — «Динамо» Москва. Прямая трансляция, смотреть онлайн

«Краснодар» сыграет со «Спартаком» в центральном матче 17-го тура чемпионата России

Токсиколог Кутушов перечислил топ-5 наиболее токсичных веществ в бытовой химии

Стендап-терапия: Елизавета Варвара Аранова о премьере сольного концерта и Большом туре 2025

Новости России

В кинопарке «Москино» покажут масштабное мультимедийное шоу «Соборная площадь»

Юрист Цуков: Пелагея не вывезет дочь за границу без разрешения Телегина

В РПЦ раскритиковали слова священника о праве духовенства на богатую жизнь

Журнал MODA topical и семейное поместье МузаРузы представляют «Новогодний BRUNCH»

Экология в России и мире

На Воробьевых горах открылась фотовыставка «Без барьеров»

Москва встречает туристов из Королевства Таиланд

Растения, занесенные в Красную книгу России

Секреты мотивации: как превратить рутину в увлекательный процесс

Спорт в России и мире

«Он талисман!» Беккер предложил «Ливерпулю» продлить контракт с Салахом

Теннисистка Кудерметова планирует восстанавливаться после сезона в Казани

Жену второй ракетки Белоруссии Герасимова обокрали в отеле Петербурга

Организаторы теннисного турнира в Петербурге хотят пригласить для участия Шарапову

Moscow.media

«Деловые Линии» открыли терминал в городе Бор в Нижегородской области

«Байкал Сервис» открыл второй терминал в Хабаровске

Эффективная борьба с лесными пожарами: опыт и результаты 2024 года в Алтайском крае

Thyseed — новый игрок на рынке товаров для мам и детей в «Детском мире»











Топ новостей на этот час

Rss.plus






В Красноярске простились с ветераном ВОВ Иваном Шпагиным

Журнал MODA topical и семейное поместье МузаРузы представляют «Новогодний BRUNCH»

Пожилым людям полезно есть этот продукт — по одному ломтику в день. Укрепляет иммунитет, улучшает работу кишечника и снижает давление

МИД: Россия готова нормализовать отношения с Грузией, если к этому готов Тбилиси