Добавить новость
ru24.net
«Фрилансим»
Декабрь
2024
1 2 3 4 5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

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

0
есть такой код:
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



Moscow.media
Частные объявления сегодня





Rss.plus



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

Лучшие студенческие энергетические отряды «Россети Центр» и «Россети Центр и Приволжье» награждены в Москве

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

Подмосковные росгвардейцы получили более 100 новых служебных автомобилей


Фонд борьбы с инсультом ОРБИ при поддержке Т-Банка запустили платформу волонтерского фандрайзинга

Подкаст "Женское дело. Лаборатория успеха". В гостях Ольга Хасанова

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

Билеты на Like Party «КОРПОРАТИВ» за крутое фото или видео


Watch: India boss Rohit gets down to pink-ball business in Adelaide

Gujarat's Urvil Patel smashes another blazing century in SMAT

Bigg Boss 18: Digvijay Rathee asks Chum Darang about the kind of guy she would like to marry; says ‘mere parents ko manana padega’

Bigg Boss 18: Netizens slam Raftaar and Ikka’s for calling Digvijay Singh Rathee ‘napti’; see tweets


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

Коммунальные службы вернули тепло и горячую воду в дома Златоуста

Михаил Мальцев: "Низкий туррейтинг Свердловской области – из-за нехватки мест размещения"

островок в утреннем тумане


Arcane co-creator reminds fans 'there are always constraints', dispels theories the show was rushed or restrained by Riot's higher-ups

Доступна предзагрузка Steam-версии Delta Force: Hawk Ops

How two secret Stalker 2 hacks cut my loading time from 5 minutes to 52 seconds and got me in the Zone faster

MMORPG Journey of Monarch можно предзагрузить на iOS и Android



В Азербайджане прошел третий, завершающий этап проекта «Русский язык: читаем, слушаем, смотрим в странах СНГ»

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

В Азербайджане прошел третий, завершающий этап проекта «Русский язык: читаем, слушаем, смотрим в странах СНГ»

В Азербайджане прошел третий, завершающий этап проекта «Русский язык: читаем, слушаем, смотрим в странах СНГ»




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

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

Расслабляющий массаж: Сауна и Хаммам 24/7 — Релакс в TerraLux SPA

Сага о «казахстанских Битлз». В Москве стартовали Дни казахского кино


Жителей и гостей Шатуры 11 декабря приглашают на дегустацию чая

Собянин подвел главные итоги 2024 года для столицы

Семье ветерана вернули украденную 60 лет назад медаль: как ее нашли

От воспалений до рака: о каких болезнях может говорить неприятный запах от ног


Казахстанская теннисистка взлетела в рейтинге WTA

В WTA могут ввести штрафы за посты в соцсетях после скандалов Бадосы и Линетт в Китае

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

Шнайдер: договорились с Андреевой играть весь сезон вместе на ТБШ и WTA 1000


Открылась регистрация организаций на международную олимпиаду «IT-Планета 2025»

Штаб по защите бизнеса помог компаниям Подмосковья сэкономить 4 млрд рублей

Стала известна судьба "Майбаха" за 21 млн рублей, угнанного с улиц Москвы

Собянин подвел главные итоги 2024 года для столицы


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

«На извращенца похож»: В Сети смеются над Джиганом с волосами

В Азербайджане прошел третий, завершающий этап проекта «Русский язык: читаем, слушаем, смотрим в странах СНГ»

«Поставила условие»: Светлана Немоляева раскрыла, как согласилась сняться в клипе Сергея Шнурова

Волочкова показала редкие фото со своей матерью



В Азербайджане прошел третий, завершающий этап проекта «Русский язык: читаем, слушаем, смотрим в странах СНГ»

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

В Азербайджане прошел третий, завершающий этап проекта «Русский язык: читаем, слушаем, смотрим в странах СНГ»

В Азербайджане прошел третий, завершающий этап проекта «Русский язык: читаем, слушаем, смотрим в странах СНГ»


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

Стали известны имена победителей спортивного турнира, прошедшего в Сибирском филиале ведомственной охраны Минтранса России

В компании «Россети Новосибирск» прошел очередной научно-технический совет

Wildberries планирует ввод в эксплуатацию новых логистических центров в 2025 году


Коллекционирование моделей авто: как начать свое хобби

История суперкаров: модели, вдохновившие коллекцию Teboil

Regions Development: 79% россиян планируют потратить средства с депозитов на покупку недвижимости

«Москвич» вне конкуренции: какие машины соперничали с первым массовым автомобилем


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

Александр Цыбульский принял участие в пленарном заседании инвестиционного форума «Россия зовёт!»

Путин: скоординированные действия ЦБ и кабмина нужны для сдерживания инфляции

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


Свыше 4,8 тыс. случаев заболевания коронавирусом выявили в городе за неделю




Фонд борьбы с инсультом ОРБИ при поддержке Т-Банка запустили платформу волонтерского фандрайзинга

От воспалений до рака: о каких болезнях может говорить неприятный запах от ног

Расслабляющий массаж: Сауна и Хаммам 24/7 — Релакс в TerraLux SPA

В Москве хирурги удалили с головы пациентки десять атером


Такер Карлсон: Посольство США в Киеве запретило Зеленскому давать интервью

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


ТРЦ «Нора» провёл семейный шахматный турнир

В Москве врачи спасли мужчину со сломавшимся кардиостимулятором

Суд передал олимпийский велотрек в Крылатском государству

Кубок Группы компаний «РЕГИОН»: Евгений Томашевский на вершине пьедестала


Признают ли Лукашенко на Западе после «выборов»?



Сергей Собянин рассказал о развитии технопарка Руднево

Собянин: Ежегодно будем открывать новые маршруты речного электротранспорта

Собянин: Открытие ВСМ Москва — Петербург увеличит пассажиропоток между городами

Собянин: За пять лет работы на МЦД перевезли миллиард пассажиров


В Москве полицейские пресекли сбыт свыше 1,4 кг мефедрона уроженцем Хабаровского края

Hybrid представил первый в России рейтинг виртуальных миров

«Метриум»: На страже комфорта

В Москве заработали первые платные городские зарядки для электромобилей


УВД по ЮЗАО столицы информирует о необходимости уведомления о факте приобретения гражданства иностранного государства, либо иного документа, подтверждающего его право на постоянное проживание на территории иностранного государства

Семье ветерана вернули украденную 60 лет назад медаль: как ее нашли

Собянин подвел главные итоги 2024 года для столицы

Открылась регистрация организаций на международную олимпиаду «IT-Планета 2025»


Беспроводной сканер штрих-кодов SAOTRON P05i промышленного класса

В Архангельске представили выставку «Мечта о Севере. Снегурочка»

Какой будет погода на Новый год, спрогнозировали синоптики

Собянин: Этапы строительства Рублево-Архангельской линии завершатся в 2026-2027


Беседа-рекомендация «Это важно знать»

Калмыкия может открыть авиарейсы в Петербург, Казань, Екатеринбург и Улан-Удэ

Час мужества "Их подвиг жив, неповторим и вечен"

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


От воспалений до рака: о каких болезнях может говорить неприятный запах от ног

Открылась регистрация организаций на международную олимпиаду «IT-Планета 2025»

Собянин подвел главные итоги 2024 года для столицы

Единая лига ВТБ. 32 очка Кантера помогли «Автодору» обыграть в гостях «Енисей», МБА-МАИ принимает «Пари Нижний Новгород»












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

Новости спорта


Новости тенниса
WTA

Казахстанская теннисистка из топ-30 WTA одержала победу на турнире в России






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

Бывший капитан «Локомотива»: «Уверен, что поражение от «Химок» пойдёт на пользу»

УВД по ЮЗАО столицы информирует о необходимости уведомления о факте приобретения гражданства иностранного государства, либо иного документа, подтверждающего его право на постоянное проживание на территории иностранного государства

В Одинцове в этом году специалисты отремонтировали 164 подстанции