首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用scipy.Delaunay避免四面体躺在平面上?

如何使用scipy.Delaunay避免四面体躺在平面上?
EN

Stack Overflow用户
提问于 2019-10-16 11:41:59
回答 1查看 173关注 0票数 0

我试图在Python 3.7.3中创建一个四面体网格。但有些四面体是平坦的,即它们的顶点在平坦的表面上。

代码语言:javascript
复制
import numpy as np
from scipy.spatial import Delaunay

# Coordinates of 3x3x3 equally distant points of a cube
x = np.linspace(0, 1, 3)
X1, X2, X3 = np.meshgrid(x,x,x)
vertices = np.hstack([X1.reshape(-1,1),X2.reshape(-1,1),X3.reshape(-1,1)])

# Using Delaunay
tri = Delaunay(vertices).simplices

# tetrahedra
simplices = vertices[tri,:]

从下面可以看到,第三个四面体的所有y坐标都是0.5。这将导致随后出现一个奇异矩阵。

代码语言:javascript
复制
print(simplices[0:3])
[[[1.  0.5 1. ]
  [0.5 1.  0.5]
  [1.  0.5 0.5]
  [0.5 0.5 0.5]]

 [[1.  0.5 1. ]
  [1.  1.  0.5]
  [0.5 1.  0.5]
  [1.  0.5 0.5]]

 [[1.  0.5 1. ]
  [0.5 0.5 1. ]
  [1.  0.5 0.5]
  [0.5 0.5 0.5]]]

你知道我怎么解决这个问题吗?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-23 19:05:38

与2D不同,对于3D,没有明确生成给定域的Delaunay三角剖分的已知算法。然而,有一些网格生成包,产生相当好的四面体网格。例如

(免责声明:我是pygmsh和pygalmesh的作者。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58412465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档