Создание сетки в MATLAB

Есть ли в MATLAB подпрограмма, которая принимает список точек и возвращает мне хорошая сетка, которую я могу использовать, чтобы показать своим коллегам, например эту?

alt text

На самом деле, все, что мне нужно, - это простой генератор 2D-сетки, который принимает серию координат X, Y (которые определяют границу области) и возвращает мне список элементов, которые могут хорошо сцепить эту область. Я могу сделать все остальное, используя команду MATLAB для интерполяции Z значение.

Изменить: мне не интересно использовать MATLAB для создания вышеуказанного графика. Мне интересно использовать библиотеку MATLAB для получения списка элементов, чтобы, когда я сам рисую этот элемент (не в самом MATLAB, а в моей собственной программе на C #), я мог получить эту сетчатую поверхность.

PS: я знаю, что есть этот DistMesh, но я ищу что-то попроще - Возможно, что-то встроенное прямо в MATLAB. И нет, meshgrid не не < / em> генерация сетки.


person Graviton    schedule 06.11.2009    source источник
comment
Цифра, которую вы показываете, может вводить в заблуждение. Если я правильно понимаю, вы начинаете с набора точек, определяющих границу области. Затем вы хотите создать треугольную сетку, которая создает больше точек внутри этой области?   -  person gnovice    schedule 07.11.2009
comment
Да, я хочу создать треугольную сетку, которая создает больше точек в этой области.   -  person Graviton    schedule 07.11.2009


Ответы (5)


Похоже, вы хотите создать сетку конечных элементов, начиная с набора точек, определяющих границу. области, а затем создает треугольную сетку, которая создает больше точек в этой области. Я не думаю, что есть «простое» решение этой проблемы.

Ближайшим «встроенным» решением, вероятно, будет Панель инструментов для уравнений в частных производных, в частности некоторые из геометрических алгоритмов например INITMESH и REFINEMESH.

Ссылка, которую вы дали на DistMesh, кажется еще одним хорошим решением. Есть также несколько материалов на MathWorks File Exchange, на которые вы можете взглянуть:

person gnovice    schedule 06.11.2009
comment
Также может быть интересен чистый Matlab DistMesh от Persson: persson.berkeley.edu/software.html однако для создания сложных сеток я бы написал код в CSV-файл и сделал бы системный вызов треугольника Шевчука, однако: cs.cmu.edu/~quake/triangle.html - person shabbychef; 08.12.2009

  • Это изображение выглядит точно так же, как и изображение из griddata документация. Пример выглядит так, как вы хотите.
  • SFTOOL легко сделает изображение, которое вы показываете.
  • Тонкопластинчатый шлиц, например, TPAPS, также должен выполнять свою работу.
person ManWithSleeve    schedule 06.11.2009
comment
sftool определенно не то, что мне нужно, тогда как TPAPS кажется более применимым для получения общей большой тонкой поверхности, а не сетчатых поверхностей. - person Graviton; 06.11.2009

Я думаю, что созданный пользователями "gridfit" - лучшее, что я встречал для одинарная поверхность, намного лучше / красивее, чем griddata.

person James    schedule 30.03.2011

Генерация сетки как в триангуляции Делоне + точки Штейнера? В MATLAB есть встроенная функция Делоне.

person shabbychef    schedule 07.11.2009

Если ваша поверхность имеет форму z = f (x, y), вы можете использовать:

http://www.advancedmcode.org/how-to-plot-a-coloured-surface-from-3d-scatter.html

Если ваша поверхность вогнутая, поищите реконструкцию поверхности на том же сайте.

person Community    schedule 05.02.2010