reducepatch

Сокращение количества поверхностей закрашенной фигуры

Синтаксис

reducepatch(p,r)
nfv = reducepatch(p,r)
nfv = reducepatch(fv,r)
nfv = reducepatch(p)
nfv = reducepatch(fv)
reducepatch(...,'fast')
reducepatch(...,'verbose')
nfv = reducepatch(f,v,r)
[nf,nv] = reducepatch(...)

Описание

reducepatch(p,r) сокращает количество поверхностей закрашенной фигуры, идентифицированной указателем p, при попытке сохранить полную форму исходного объекта. MATLAB интерпретирует фактор сокращения r одним из двух способов в зависимости от его значения:

  • Если r меньше 1, r интерпретирован как часть исходного количества поверхностей. Например, если вы задаете r как 0,2, затем количество поверхностей сокращено к 20% номера в исходной закрашенной фигуре.

  • Если r больше или равен 1, затем r целевое количество поверхностей. Например, если вы задаете r как 400, затем сокращено количество поверхностей, пока нет 400 остающихся поверхностей.

nfv = reducepatch(p,r) возвращает уменьшаемый набор поверхностей и вершин, но не устанавливает Faces и Vertices свойства закрашенной фигуры p. Struct nfv содержит поверхности и вершины после сокращения.

nfv = reducepatch(fv,r) выполняет сокращение на поверхностях и вершинах в struct fv.

nfv = reducepatch(p) и nfv = reducepatch(fv)использует значение сокращения 0.5.

reducepatch(...,'fast') принимает, что вершины уникальны, и не вычисляет совместно использованные вершины.

reducepatch(...,'verbose') сообщения о ходе выполнения печати к командному окну как расчет прогрессируют.

nfv = reducepatch(f,v,r)выполняет сокращение на поверхностях в f и вершины в v.

[nf,nv] = reducepatch(...) возвращает поверхности и вершины в массивах nf и nv.

Примеры

свернуть все

Этот пример иллюстрирует эффект сокращения количества поверхностей только к 15% исходного значения.

figure
[x,y,z,v] = flow;
p = patch(isosurface(x,y,z,v,-3));
p.FaceColor = 'w';
p.EdgeColor = 'b';
daspect([1,1,1])
view(3)

Figure contains an axes. The axes contains an object of type patch.

Сократите количество поверхностей.

reducepatch(p,0.15)

Figure contains an axes. The axes contains an object of type patch.

Советы

Если закрашенная фигура содержит несовместно использованные вершины, MATLAB вычисляет совместно использованные вершины прежде, чем сократить количество поверхностей. Если поверхности закрашенной фигуры не являются треугольниками, MATLAB триангулирует поверхности перед сокращением. Возвращенные поверхности всегда задаются как треугольники.

Количество выходных треугольников не может быть точно номером, заданным с аргументом фактора сокращения (r), особенно если поверхности исходной закрашенной фигуры не являются треугольниками.

Расширенные возможности

Представлено до R2006a