scale

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

Описание

пример

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

пример

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

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

Если исходной геометрией является DiscreteGeometry объект, затем функция изменяет исходную геометрию и возвращает указатель h к модифицированному DiscreteGeometry геометрический объект. Если исходной геометрией является AnalyticGeometry объект, затем h указатель на новый DiscreteGeometry геометрический объект. В этом случае исходная геометрия остается неизменной.

Примеры

свернуть все

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

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

model = createpde;

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

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

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

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

generateMesh(model);

figure
pdemesh(model)

Figure contains an axes object. The axes object contains 2 objects of type line.

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

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

       NumCells: 0
       NumFaces: 1
       NumEdges: 5
    NumVertices: 5
       Vertices: [5x3 double]

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

figure
pdegplot(model)

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

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

figure
pdegplot(model)
hold on
pdemesh(model)

Figure contains an axes object. The axes object contains 3 objects of type line.

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

generateMesh(model);

figure
pdegplot(model)
hold on
pdemesh(model)

Figure contains an axes object. The axes object contains 3 objects of type line.

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

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

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

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

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains 2 objects of type line.

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

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

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

Figure contains an axes object. The axes object contains 3 objects of type quiver, patch, line.

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

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

Figure contains an axes object. The axes object contains 3 objects of type quiver, patch, line.

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

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

Figure contains an axes object. The axes object contains 3 objects of type quiver, patch, line.

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

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

Figure contains an axes object. The axes object contains 3 objects of type quiver, patch, line.

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

свернуть все

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

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

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

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

свернуть все

Получившаяся геометрия, возвращенная как указатель. Если исходная геометрия g DiscreteGeometry объект, затем h указатель на модифицированный DiscreteGeometry геометрический объект g. Если g AnalyticGeometry объект, затем h указатель на новый DiscreteGeometry геометрический объект. В этом случае, исходная геометрия g остается неизменным.

Советы

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

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

  • Если g AnalyticGeometry объект, и вы хотите заменить его на получившуюся дискретную геометрию, присвоить выход исходной геометрии, например, g = scale(g,20).

Введенный в R2020a