Генерация 2d me sh файла из точек - PullRequest
0 голосов
/ 23 марта 2020

Я должен сгенерировать 2d me sh в формате, совместимом с optime sh, чтобы уточнить его с помощью алгоритмов, включенных в эту библиотеку (в частности, сглаживание тесселяции Centroidal Voronoi) , Я начинаю с набора неупорядоченных точек, поэтому я пытаюсь понять, какая из цепей инструментов проще всего выполнять эту работу. Я совсем не знаком с обработкой геометрии, так что извините, если мои вопросы глупы.

Я нашел много библиотек для обработки me sh из файла в большом разнообразии форматов, но мне не хватает, как сгенерировать его из точек. Я видел, что с помощью scipy я могу получить триангуляцию, но объект, возвращаемый из scipy, не может быть напрямую передан в optime sh.

Итак, моя проблема сейчас примерно такая:

import numpy as np
from scipy.spatial import Delaunay,delaunay_plot_2d


points = np.random.random((100,2))
delaun = Delaunay(points)

#Magic code that I wish
delaun.to_meshfile('meshfile.xxx')  
# 

с форматом файла, который я могу обработать позже с помощью optime sh

1 Ответ

2 голосов
/ 24 марта 2020

optime sh здесь автор. Ваш delaun объект имеет delaun.points и delaun.simplices. Они могут быть переданы в optime sh:

import numpy as np
from scipy.spatial import Delaunay, delaunay_plot_2d
import optimesh

points = np.random.random((100, 2))
delaun = Delaunay(points)

points, cells = optimesh.cvt.quasi_newton_uniform_blocks(
    delaun.points, delaun.simplices, tol=1.0e-5, max_num_steps=100
)

Если вы действительно хотите сохранить их в файле, посмотрите meshio .

...