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

Можайск занял первое место в Подмосковье по количеству гнезд аистов

17 населенных пунктов планируют газифицировать в Можайском округе в 2025 году

С парковки в «Москва-Сити» угнали Maybach за 21 млн рублей

Мальта аннулировала визу Захаровой перед вылетом делегации РФ на СМИД ОБСЕ



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

Новости от 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

Бензин в РФ за неделю подорожал в среднем на 22 копейки

Более 20 тысяч книг и семь студий для детей. В ЮЗАО работает библиотека с 79-летней историей

У миллиардера Беренштейн в Москве угнали Maybach за 21 млн рублей и разбили

Рената Литвинова вернулась в Россию

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

VK Fest 2025 объявил площадки проведения и новые даты в Москве и Петербурге

Выставка-память «Пропавшие без вести, но не забытые», ко Дню Неизвестного солдата

Путин в центре ортопедии пообщался с бойцами СВО, которые проходят реабилитацию

Сергей Собянин: Путепровод соединил два округа

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

ЖАДНОСТЬ АГРАРИЕВ или "Гнев небесной канцелярии" (фельетон)

Спрос на офисы в 2024 году: какие лоты «уходили» и кто их выбирал

Налицо самоуправство

Можайск занял первое место в Подмосковье по количеству гнезд аистов

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

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

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

На Казанском вокзале в Москве презентовали вагон-купе для инвалидов

Продвижение Песни в Мою Волну музыкального стриминга Яндекс Музыка.

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

Супругу теннисиста Герасимова Анну обокрали в отеле Санкт-Петербурга

«До 30 лет еще можно рваться к Большим шлемам» — Янчук о форме Медведева

WTA направила предостережения теннисисткам после скандала с Бадосой

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

Moscow.media

Горный туман на озере Джангысколь

Свердловские следователи проверят информацию о вывозе детей за границу

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

Путешествия на НГ по России — куда поедем и сколько потратим











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

Rss.plus






Мальта аннулировала визу Захаровой перед вылетом делегации РФ на СМИД ОБСЕ

Учебные заведения нового типа: появятся ли в Красноярске

Путин заявил о политических мотивах ухода Volkswagen из России

Озеленение крыш и маяки на пирсах: Ярославль могут разделить на дизайн-зоны