Этот пример показывает, как повернуть объект вокруг произвольной оси.
Вращение выполняется вокруг источника. Поэтому необходимо выполнить перемещение так, чтобы предполагаемая ось вращения временно находилась в источнике. После применения матрицы преобразования вращением, объект переводится назад в его исходное положение.
В этом примере показано, как повернуть поверхность вокруг оси 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;