scale

Масштабируйте геометрию

Описание

пример

scale(g,s) масштабирует геометрию g факторным s относительно источника.

пример

scale(g,s,refpoint) масштабирует геометрию относительно контрольной точки refpoint.

h = scale(g,___) возвращает указатель h к модифицированному геометрическому объекту g. Используйте этот синтаксис с любыми входными параметрами от предыдущих синтаксисов.

Примеры

свернуть все

Масштабируйте 2D геометрию вдоль x-и оси Y и обеспечьте непротиворечивость mesh.

Создайте модель.

model = createpde;

Импортируйте и постройте геометрию.

g = importGeometry(model,'PlateHolePlanar.stl');
pdegplot(model)

Поймайте в сети геометрию и постройте mesh.

generateMesh(model);

figure
pdemesh(model)

Масштабируйте геометрию на коэффициент 10 вдоль оси X.

scale(g,[10 1])
ans = 
  DiscreteGeometry with properties:

       NumCells: 0
       NumFaces: 1
       NumEdges: 5
    NumVertices: 5

Постройте геометрию.

figure
pdegplot(model)

Постройте геометрию и mesh. scale функция изменяет геометрию, но она не изменяет mesh.

figure
pdegplot(model)
hold on
pdemesh(model)

После изменения геометрии всегда регенерируйте mesh.

generateMesh(model);

figure
pdegplot(model)
hold on
pdemesh(model)

Отразите геометрию через ось X и регенерируйте mesh.

scale(g,[1 -1]);
generateMesh(model);

Постройте получившуюся геометрию и mesh.

figure
subplot(2,1,1)
pdegplot(model)
subplot(2,1,2)
pdemesh(model)

Увеличьте геометрию: сначала однородно во всех направлениях и затем использовании различных масштабных коэффициентов вдоль различных осей.

Создайте и постройте геометрию.

g = multicuboid(1,1,1);
pdegplot(g,'VertexLabels','on','FaceAlpha',0.5)

Масштабируйте геометрию на коэффициент 2 однородно вдоль всех осей координат. Постройте результат.

scale(g,2);
pdegplot(g,'VertexLabels','on','FaceAlpha',0.5)

Теперь шкала факторами 2, 3, и 4 вдоль x-, y-, и осей z, соответственно. Постройте результат.

scale(g,[2 3 4]);
pdegplot(g,'VertexLabels','on','FaceAlpha',0.5)

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

scale(g,[1 1 -1], [2 -3 0]);
pdegplot(g,'VertexLabels','on','FaceAlpha',0.5)

Входные параметры

свернуть все

Геометрия в виде DiscreteGeometry объект.

Масштабный коэффициент в виде вещественного числа или вектора из двух или трех вещественных чисел. Используйте одно значение для универсального масштабирования во всех направлениях. Используйте вектор из двух или трех элементов, чтобы задать различные масштабные коэффициенты вдоль x - y - и, для 3-D геометрии, z - оси.

Контрольная точка для масштабирования заданного как вектор из двух или трех вещественных чисел для 2D и 3-D геометрии, соответственно

Выходные аргументы

свернуть все

Модифицированная геометрия, возвращенная как указатель на модифицированный геометрический объект g.

Ограничения

Советы

  • scale изменяет геометрию, но она не изменяет mesh. После изменения геометрии регенерируйте mesh, чтобы гарантировать соответствующую связь mesh с новой геометрией.

  • Если масштабный коэффициент будет отрицателен, то координаты инвертируют свои знаки. Масштабный коэффициент -1 зеркально отражает существующую геометрию, если контрольная точка является источником.

Введенный в R2020a