Создание 3D-поверхности из разбросанных точек или точек данных

Может ли кто-нибудь сказать мне, как создать 3D-модель поверхности, такую ​​​​как CAD, в Matlab? 1.Ввод: ввод представляет собой набор точек с (x, y, z), где поверхность присутствует для объекта (я использую это для 3D-сканера, где мои входы (x, y ,z) поверхности) 2.Точки должны отображаться как поверхность с использованием плавной интерполяции. 3. Больше похоже на генерацию поверхности из точек данных. Спасибо.


person vijay rajendra Andukuri    schedule 25.02.2015    source источник
comment
surf — хорошее место для начала, но я не понимаю, о чем вы пытаетесь спросить. См. раздел Как задать вопрос и попытайтесь улучшить свой вопрос, чтобы получить полезные ответы.   -  person David    schedule 25.02.2015
comment
Я сомневаюсь, что вы можете построить графики, эквивалентные CAD в Matlab. Обычно САПР является очень продвинутым в плане графики. Однако, если вы хотите отобразить поверхность, используйте surf. Что касается данных, если точки выбраны равномерно, я думаю, что по этому поводу происходит обмен файлами, гладкий2. Если данные неоднородны, я не видел встроенных для этого (что не означает, что их не существует). Тогда вам придется начать с интерполяции, например, interp3 или griddata (и если это хорошо, может быть, даже остановиться на этом?).   -  person patrik    schedule 25.02.2015


Ответы (2)


Для построения поверхностей вы можете использовать функцию patch. Однако вам нужна наряду с точками информация о лицах. В patch поверхность состоит из полигонов, которые задаются с помощью 3 точек, которые являются информацией о грани. 1

person Mera    schedule 25.02.2015

Поскольку кажется, что вы будете вводить дискретные точки, расположенные на поверхности объекта, вам сначала нужно создать невыпуклый многоугольник на основе данных, используя функцию Matlab boundary.

https://www.mathworks.com/help/matlab/ref/boundary.html

Затем вы можете использовать функцию trimesh для создания фигуры

Этот вопрос показывает входные данные и то, что было создано с помощью этого метода: Как создать трехмерный полигон/сетку по точкам данных?

person Adam Ryason    schedule 01.11.2016