绕任意轴旋转
此示例演示如何绕任意轴旋转对象。
旋转前转换到原点
旋转是绕原点进行的。因此,您需要执行转换,以将旋转的目标轴暂时定在原点。应用旋转变换矩阵后,将对象转换回原始位置。
旋转曲面
此示例演示如何让曲面绕 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;
曲面绕 y 轴旋转 -15 度,经过原点。
转换曲面并旋转
现在绕 y 轴旋转曲面,经过点 x = 20。
创建两个转换矩阵,一个将曲面沿 x 轴转换 -20 单位,另一个往回转换 20 单位。用旋转矩阵按照正确的顺序串联两个转换矩阵,并设置该变换。
Tx1 = makehgtform('translate',[-20 0 0]); Tx2 = makehgtform('translate',[20 0 0]); t.Matrix = Tx2*Ry*Tx1;