本博文源于matlab基础,主要对三维图形的一些图形效果进行更好的优化。
视角控制命令view
主要从不同的角度观察图形,其调用格式为:
view(az,el) % 设置查看图形的三个角度,其中az为水平方位角,从Y轴负方向开始,以逆时针方向旋转为正;
% el为垂直方位角,以向Z轴方向的旋转为正,向Z轴旋转为负
view([x,y,z]) % 在笛卡尔坐标系下的视角,而忽略向量X,Y,Z的幅值
view(2) % 设置默认的二维视角,此时az=0,el=90
view(3) % 设置默认的三维视角,此时az=-37.5,el=30
例子:绘制函数z=xexp(-xx-yy),从不懂的角度观察,自变量范围为[-2,2]
>> t=-2:0.1:2;
>> [x,y] = meshgrid(t);
>> z=x.*exp(-x.^2-y.^2);
>> subplot(2,2,1)
>> surf(x,y,z)
>> view(3)
>> subplot(2,2,2)
>> surf(x,y,z)
>> view(30,30)
>> subplot(2,2,3)
>> surf(x,y,z)
>> view(30,0)
>> subplot(2,2,4)
>> surf(x,y,z)
>> view(-120,30)
>>
效果view起来还是有很大的不同的
旋转控制命令rotate3d
调用格式:
rotate3d
直接动态旋转
例子:绘制上例的图形,只需绘制一个,并rotate3d
>> t=-2:0.1:2;
[x,y] = meshgrid(t);
z=x.*exp(-x.^2-y.^2);
surf(x,y,z)
surf(peaks(40))
rotate3d
>>
下图就是鼠标玩来玩去的效果