4.三维旋转的实现
要求:读懂以上程序,程序先绘制一个长方体,然后隔0.1秒又绘制出另一个围绕z轴旋转i角度的长方体,循环中每次(每个顶点)都被旋转矩阵变换成新的顶点。把变换矩阵改成围绕x轴的旋转矩阵、y轴旋转的变换矩阵,再运行程序看看有什么不同。
for i=-2*pi:0.5:2*pi
R=[cos(i) sin(i) 0;-sin(i) cos(i) 0;0 0 1];
vert=[1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;1 2 2;2 2 2;2 1 2];
vert=vert*R;
fac=[1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8];
pause(0.1)
patch('faces',fac,'vertices',vert,'FaceVertexCData',hsv(8),'Facecolor','interp');
view(3);
end