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