hgtransform

Создайте преобразовывают объект

Синтаксис

h = hgtransform
h = hgtransform('PropertyName',propertyvalue,...)
h = hgtransform(ax,...)

Свойства

Для списка свойств смотрите Transform Properties.

Описание

h = hgtransform создает объект Transform и возвращает его указатель.

h = hgtransform('PropertyName',propertyvalue,...) создает объект Transform с настройками значения свойства, заданными в списке аргументов. Для описания свойств смотрите Transform Properties.

h = hgtransform(ax,...) создает объект Transform в осях, заданных ax вместо в текущей системе координат (gca). Опция ax может предшествовать любой комбинации входных аргументов в предыдущих синтаксисах.

Объекты Transform могут содержать другие объекты, который позволяет вам обработать объект Transform и его дочерние элементы как одна сущность относительно видимости, размера, ориентации, и т.д. Вы можете групповые объекты путем порождения их к одному объекту Transform (т.е. установки свойства Parent объекта на указатель объекта преобразования):

h = hgtransform;
surface('Parent',h,...)

Первичное преимущество порождения объектов к объекту Transform состоит в том, что можно выполнить, преобразовывает (например, перевод, масштабирование, вращение, и т.д.) на дочерних объектах в унисон.

Родительский элемент объекта Transform является или объектом Axes или другим объектом Transform.

Несмотря на то, что вы не видите, что объект Transform, устанавливая его свойство Visible на off делает всю свою дочернюю невидимую операцию также.

Исключения и ограничения

  • Объект Transform может быть родительским элементом любого количества дочерних объектов осей, принадлежащих тем же осям, за исключением световых объектов.

  • Объекты Transform никогда не могут быть родительским элементом объектов осей и поэтому могут содержать объекты только от сингла оси.

  • Объекты Transform могут быть родительским элементом другого, преобразовывают объекты в тех же осях.

  • Вы не можете преобразовать объекты Image, потому что изображения не являются объектами true 3-D. Отображение текстур данные изображения к поверхностному CData позволяет вам произвести эффект преобразования изображения на 3-D пробеле.

  • Преобразовывает не влияют на текстовые объекты, если текстовый объект не использует модули данных. Если объекту Text задали положение в модулях данных, то преобразование перемещает левый нижний угол текста. Преобразование не влияет на размер шрифта или ориентацию. Чтобы изменить размер шрифта и ориентацию, используйте текстовые свойства.

Примечание

Много функций построения графика очищаются, оси (удалите дочерние элементы осей) прежде, чем чертить график. Очистка осей также удаляет любые объекты Transform в осях.

Примеры

свернуть все

Этот пример показывает, как создать 3-D звезду с группой объектов подложки, порожденных к синглу, преобразовывают объект. Объект преобразования затем вращает объект об оси z при масштабировании ее размера.

Создайте оси и настройте представление. Установите пределы осей, чтобы предотвратить автоматический предельный выбор во время масштабирования.

ax = axes('XLim',[-1.5 1.5],'YLim',[-1.5 1.5],'ZLim',[-1.5 1.5]);
view(3)
grid on

Создайте объекты, которые вы хотите породить к объекту преобразования.

[x,y,z] = cylinder([.2 0]);
h(1) = surface(x,y,z,'FaceColor','red');
h(2) = surface(x,y,-z,'FaceColor','green');
h(3) = surface(z,x,y,'FaceColor','blue');
h(4) = surface(-z,x,y,'FaceColor','cyan');
h(5) = surface(y,z,x,'FaceColor','magenta');
h(6) = surface(y,-z,x,'FaceColor','yellow');

Создайте преобразование, возражают и порождают объекты подложки к нему. Инициализируйте вращение и масштабирующий матрицу к единичной матрице (глаз).

t = hgtransform('Parent',ax);
set(h,'Parent',t)

Rz = eye(4);
Sxy = Rz;

Сформируйте матрицу вращения оси z и масштабирующуюся матрицу. Вращайте группу и шкалу при помощи значений увеличения r.

for r = 1:.1:2*pi
    % Z-axis rotation matrix
    Rz = makehgtform('zrotate',r);
    % Scaling matrix
    Sxy = makehgtform('scale',r/4);
    % Concatenate the transforms and
    % set the transform Matrix property
    set(t,'Matrix',Rz*Sxy)
    drawnow
end
pause(1)

Сбросьте к исходной ориентации и размеру с помощью единичной матрицы.

set(t,'Matrix',eye(4))

Этот пример создает два, преобразовывают объекты проиллюстрировать, как преобразовать каждого независимо в тех же осях. Преобразование перевода переезжает, каждый преобразовывает объект от источника.

Создайте и настройте объект осей, который будет родительским элементом обоих, преобразовывают объекты. Установите пределы, чтобы разместить переведенный объект.

ax = axes('XLim',[-3 1],'YLim',[-3 1],'ZLim',[-1 1]);
view(3)
grid on

Создайте объекты подложки, чтобы сгруппироваться.

[x,y,z] = cylinder([.3 0]);
h(1) = surface(x,y,z,'FaceColor','red');
h(2) = surface(x,y,-z,'FaceColor','green');
h(3) = surface(z,x,y,'FaceColor','blue');
h(4) = surface(-z,x,y,'FaceColor','cyan');
h(5) = surface(y,z,x,'FaceColor','magenta');
h(6) = surface(y,-z,x,'FaceColor','yellow');

Создайте объекты преобразования и породите их к тем же осям. Затем привяжите поверхности, чтобы преобразовать t1. Скопируйте объекты подложки и породите копии, чтобы преобразовать t2. Эта фигура не должна изменяться.

t1 = hgtransform('Parent',ax);
t2 = hgtransform('Parent',ax);

set(h,'Parent',t1)
h2 = copyobj(h,t2);

Переведите второе, преобразовывают объект, далеко сначала преобразовывают объект и отображают результат.

Txy = makehgtform('translate',[-1.5 -1.5 0]);
set(t2,'Matrix',Txy)
drawnow

Вращайтесь оба преобразовывают объекты в противоположные направления.

Вращайтесь 10 раз (2pi радианы = 1 вращение)

for r = 1:.1:20*pi
    % Form z-axis rotation matrix
    Rz = makehgtform('zrotate',r);
    % Set transforms for both transform objects
    set(t1,'Matrix',Rz)
    set(t2,'Matrix',Txy*inv(Rz))
    drawnow
end

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

Для просмотра документации необходимо авторизоваться на сайте