Вопрос по BSpline - PullRequest
       93

Вопрос по BSpline

4 голосов
/ 14 сентября 2011

Вот файл данных с кластером трехмерных точек. Теперь мы можем сформировать BSpline поверхность из этого.

dat=Import["C:\\Users\\Andy\\Desktop\\Foil.mat"];
surface=BSplineFunction[dat];
ParametricPlot3D[surface[x,y], {x, 0, 1}, {y, 0, 1},
                MaxRecursion->4,Axes->None,Mesh->All,Boxed->False]

Теперь мы можем увидеть структуру. Но проблема в том, что я хочу сделать трехмерное тело, и эта структура фактически имеет две видимые дыры.

enter image description here

На следующем рисунке мы видим, что по обоим углам открыты и структура не сплошная, а фактически полая.

enter image description here

Итак, я нашел решение, которое, я уверен, может работать визуально, но не возвращает твердую структуру.

pic=Show[Graphics3D[
       {Polygon[Table[surface[0,y],{y,0,1,0.005}]],
        Polygon[Table[surface[1,y],{y,0,1,.005}]]}],
        ParametricPlot3D[surface[x,y],{x,0,1},{y,0,1},
           MaxRecursion-> 4,PlotPoints-> 20,
           Mesh-> All],Boxed->False,Axes-> None];

GraphicsGrid [ {{ParametricPlot3D [поверхность [х, у], {х, 0,1}, {у, 0,1}, PlotPoints-> 20, Mesh-> All, в штучной упаковке-> False, топоры-> None], Graphics3D [{Многоугольник [Таблица [Поверхность [0, у], {у, 0,1,0.005}]], Многоугольник [Таблица [поверхность [1, у], {у, 0,1, 0,005}]]}], ПИК}}]

Здесь идет вывод. enter image description here

Теперь мы экспортируем третье изображение, где отверстия визуально закрыты как файл * .obj. Мы можем импортировать этот файл в любой редактор на основе САПР, например Meshlab . Там можно увидеть отверстия, которые будут обнаружены.

enter image description here

Теперь есть простой способ, чтобы мы могли сформировать сплошную структуру в Mathematica с заданными точками данных в файле Foil.mat . Я ожидаю, что некоторые опции могут быть доступны с помощью функции BSpline для достижения этой цели. Как и следовало ожидать, я хочу иметь закрытую поверхность без отверстий.

Надеюсь, я смог объяснить мою проблему достаточно подробно. Будем ждать вашего ответа.

BR

1 Ответ

4 голосов
/ 14 сентября 2011

Возможно, вы захотите изучить TetGenLink, «скрытую особенность» в Mathematica.

TetGen is a quality tetrahedral mesh generator and a three-dimensional 
Delaunay triangulator.   
TetGenLink is a Mathematica application that uses Wolfram Library Link  
to link to TetGen functions. It is used automatically by Mathematica for  
various operations such as interpolation in three-dimensional convex domains.  
However, it can also be used directly where it gives a flexible and innovative  
way to use the functionality of TetGen.

Изображение из справки:

enter image description here

...