В этом примере показано, как повернуть объект вокруг произвольной оси.
Вращения выполняются относительно начала координат. Поэтому необходимо выполнить перемещение так, чтобы предполагаемая ось вращения временно находилась в начале координат. После применения матрицы преобразования поворота объект переводится обратно в исходное положение.
В этом примере показано, как повернуть поверхность вокруг оси Y.
Создание поверхности и преобразование
Родительская поверхность для объекта преобразования.
t = hgtransform; surf(peaks(40),'Parent',t) view(-20,30) axis manual

Создать преобразование
Задайте матрицу вращения по оси Y для поворота поверхности на -15 градусов.
ry_angle = -15*pi/180;
Ry = makehgtform('yrotate',ry_angle);
t.Matrix = Ry;
Поверхность, повернутая на -15 градусов относительно оси Y, проходящей через начало координат.
Перемещение поверхности и поворот
Теперь поверните поверхность вокруг оси Y, которая проходит через точку x = 20.
Создайте две матрицы перемещения, одна для перемещения поверхности -20 единиц в x и другая для обратного перемещения 20 единиц. Соедините две матрицы перемещения с матрицей вращения в правильном порядке и задайте преобразование.
Tx1 = makehgtform('translate',[-20 0 0]); Tx2 = makehgtform('translate',[20 0 0]); t.Matrix = Tx2*Ry*Tx1;
