Уточнение треугольного mesh
Эта страница описывает устаревший рабочий процесс. Новые возможности могут быть несовместимы с устаревшим рабочим процессом. Соответствующий шаг в рекомендуемом рабочем процессе см. в generateMesh
.
[___] = refinemesh(___,
использует входные и выходные аргументы из предыдущих синтаксисов и задает список it
)it
геометрических граней или треугольников для уточнения. Скаляр или вектор-строка задает грани. A вектора-столбца задает треугольники.
[___] = refinemesh(___,'longest')
использует самую длинную корректировку ребра, где самое длинное ребро каждого треугольника разделено. По умолчанию refinemesh
использует правильное уточнение, где все треугольники разделены на четыре треугольника одной и той же формы. Можно также явным образом задать 'regular'
вместо 'longest'
. Если вы используете вектор-столбец it
чтобы задать треугольники для уточнения, затем refinemesh
может уточнить некоторые треугольники вне заданного набора, чтобы сохранить триангуляцию и ее качество.
Алгоритм уточнения следует этим шагам:
Выберите начальный набор треугольников для уточнения.
Разделите все ребра выбранных треугольников пополам (регулярное уточнение) или разделите самое длинное ребро пополам (самое длинное уточнение кромки).
Разделите самое длинное ребро любого треугольника с разделённым ребром.
Повторите шаг 3, пока больше не будут разделены ребра.
Введите новые точки всех разделённых ребер и замените все разделенные записи в e
по двум новым записям.
Сформируйте новые треугольники. Если все три стороны разделены, новые треугольники образуются путем соединения боковых средних точек. Если две стороны разделены, средняя точка самого длинного ребра соединяется с противоположным углом и с другой средней точкой. Если разделено только самое длинное ребро, его средняя точка соединяется с противоположным углом.