从点生成二维网格文件



我必须以与optimesh兼容的格式生成一个二维网格,以便使用该库中包含的算法对其进行细化(特别是Centroide Voronoi镶嵌平滑(。我从一组无序的点开始,所以我试图理解哪一个是最容易完成这项工作的工具链。我对几何处理一点也不熟悉,所以如果我的问题很愚蠢,请原谅我。

我找到了很多库来处理各种格式的文件中的网格,但我不知道如何从点生成网格。我已经看到,使用scipy,我可以获得三角测量,但从scipy返回的对象不能直接输入到optimesh。

所以,我现在的问题基本上是这样的:

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')  
# 

使用一种文件格式,我可以稍后用optimesh处理

optimesh作者。您的delaun对象具有delaun.pointsdelaun.simplices。这些可以输入optimesh:

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。

最新更新