Вопрос про BSpline

Вот файл данных с кластером 3D-точек. Теперь мы можем сформировать из этого поверхность 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]

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

введите здесь описание изображения

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

введите здесь описание изображения

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

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[поверхность[x,y],{x,0,1},{y,0,1}, PlotPoints-> 20,Mesh-> All,Boxed->False,Axes->None], Graphics3D[{Polygon[Table[surface[0,y],{y,0,1,0.005}]], Polygon[Table[surface[1,y],{y,0,1,.005}]]} ], рис.}}]

Здесь идет вывод. введите здесь описание изображения

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

введите здесь описание изображения

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

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

BR


person PlatoManiac    schedule 14.09.2011    source источник


Ответы (1)


Вы можете изучить 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.

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

введите здесь описание изображения

person Dr. belisarius    schedule 14.09.2011
comment
Разве это не должно было храниться в тайне? - person Sjoerd C. de Vries; 14.09.2011
comment
Похоже, пришло время для еще одной вики-сообщества с недокументированными вещами :) - person Verbeia; 15.09.2011
comment
@Verbeia Любопытно, что это задокументировано (введите TetGenLink/tutorial/Overview в диалоговом окне поиска справки). Проблема в том, что документ не интегрирован/связан с какой-либо другой страницей справки. - person Dr. belisarius; 15.09.2011