Создание четырехугольной сетки из поверхностной сетки Mathematica

Я пытаюсь создать четырехугольную сетку из поверхностной сетки (которая в основном является треугольной), созданной системой Mathematica. Я не ищу качественный сетчатый объект, а простой алгоритм обхода. Я использую GMSH для внешних целей. Мы можем использовать возможности импорта САПР в Mathematic для создания трехмерной геометрии, понятной ядру Mathematica.

Мы видим импортированные объекты Geometry3D и графики количества сторон в каждом многоугольнике, из которого они состоят. Стало видно, что полигоны, образующие сетку, не всегда являются треугольниками.

Name3D=RandomChoice[ExampleData["Geometry3D"][[All,2]],6];
AllPic=
  Table[
  Vertex=ExampleData[{"Geometry3D",Name3D[[i]]},"VertexData"];
  Polygons=ExampleData[{"Geometry3D",Name3D[[i]]},"PolygonData"];
  GraphicsGrid[
  {{ListPlot[#,Frame-> True,PlotLabel->Name3D[[i]] ]&@(Length[#]&/@Polygons),
  Graphics3D[GraphicsComplex[Vertex,Polygon[Polygons]],Boxed-> False]}}
  ,ImageSize-> 300,Spacings-> {0,0}],
  {i,1,Length@Name3D}];
GraphicsGrid[Partition[AllPic,2],Spacings-> {0,0}]

enter image description here

Теперь я ищу алгоритм для формирования четырехугольной сетки из информации о многоугольнике, доступной для ММА. Любое простое решение приветствуется. Под простым решением я имею в виду то, что не будет работать в очень общих настройках (где сетка состоит из многоугольников со сторонами более 5 или 6) и которое может быть довольно неэффективным по сравнению с коммерческим программным обеспечением. Но можно видеть, что существует не так много генераторов четырехугольной поверхностной сетки, кроме нескольких дорогих коммерческих.

BR

6
задан PlatoManiac 21 November 2011 в 18:18
поделиться