绘图
效果图:
在matlab中,作图是重要的一部分,那么对于三维的图像,如何将静态的改为动态的呢?
首先,静态图的代码:
t=0:0.1:20;i=(1:200);%这里只是画了一个点'*'而已, 因为i取值为1.h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none');grid on % 网格化:即显示坐标轴中的网格,一般三维坐标都要使用axis([-2 2 -2 2 0 35]) %指三维的坐标轴分别的长度title('123');我们可以看到,里面的i取值为一个区间,,相当于是一个一维向量,我们在画图的时候,matlab会自动向后取值,之后画图即为上图所示。
那么如何将之改为动图呢?
代码如下:(主要是该i为普通的变量,对其值的改变使用for循环,同时,每次画完一个点,停留0.01秒。)
t=0:0.1:20;i=(1:200);%这里只是画了一个点'*'而已, 因为i取值为1.h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none');grid on % 网格化:即显示坐标轴中的网格,一般三维坐标都要使用axis([-2 2 -2 2 0 35]) %指三维的坐标轴分别的长度title('123');for i=2:length(t)%好像是指在h上,接着画点,x、y、z分别为sin(t(i))….等,按顺序排列set(h,'x',sin(t(i)),'y',cos(t(i)),'z',t(i));drawnow %现在就画pause(0.01) %画完当前,停留0.01秒end
如下为画至一半时的图形:
旋转视图
效果图:
运行一下代码之后,图形会随着视角进行旋转:主要通过view函数来实现:
%b=0:0.2:2*pi;%[X,Y]=meshgrid(-6:0.1:6);Z=(X.^2+Y.^2)./4;meshc(X,Y,Z);view(-115,40)axis([-10 10 -10 10 0 30])%实现旋转视图,动态观看i = 1t = 0:1:30;for i = 2:length(t)view(-115-t(i),40);pause(0.1)endxlabel('x轴');ylabel('y轴');zlabel('z轴');title('旋转抛物面')
赚钱之道很多,但是找不到赚钱的种子,便成不了事业家。