利用matlab绘制图形

版权声明:欢迎转载 https://blog.csdn.net/qq_40828914/article/details/83240367

目前存在的一些问题:

1.第一题的两个图像无法重叠
2.最后一个题的第一个图是六瓣,而我写的是八瓣
感谢张同学给我指出来,目前我正在思考解决方法
第一个的话我以为把框缩小就可以重叠了,但是今天试了一下还是分开的,还没想出来怎么实现能够通过缩小框让他们重叠
第二个我一开始以为是玫瑰线,但是k是偶数则有2k个瓣,k是奇数则有k个瓣,所以按道理不存在六瓣玫瑰线,仔细一看发现,这个不是玫瑰线,而是其他什么图形,但是我不知道函数,所以无法写
希望有其他同学大佬能够解决一下,还有最后一个图形的画法我也不会,主要是函数的问题

一、实验任务和目的

  1. 掌握Matlab的句柄图形的继承。
  2. 掌握Matlab的二、三维画图函数的用法。
  3. 了解Matlab的特殊二维绘图函数和隐函数绘图的方法。

二、实验内容

1. 画出如下图形

这个怎么说呢,明明就是个**,第二个图形是cosx?
而且matlab有现成的gui可以对图形编辑,为什么非要用代码做出来?
我就是先画个大致轮廓,然后用matlab里边图形编辑做的

x=-2*pi:pi/100:2*pi;
y=sin(x);

subplot(2,2,2);
plot(x,y,'--k');
title('plot of cos x');
xlabel('x');
ylabel('sinx');
text(-6,-0.8,'Text string 2');
subplot(2,2,3);
plot(x,y);
title('plot of sin x');
text(-2*pi,0,'min(x)->');

代码结果
在这里插入图片描述

然后我直接用图形编辑器,上色加粗移动说明文字加箭头都是分分钟的事啊,而且matlab里面有个固定的就是x轴范围显示默认为int,所以要是指定2*pi的范围,x轴还会显示10,那又要求不能显示十,那只好通过编辑器对x轴范围更改,我改成7.9就ok了,要是直接用代码,我是实现不出来

在这里插入图片描述

2.画出以下图形

在这里插入图片描述

 subplot(3, 3, 1);
 f = @(x)200*sin(x)./x;
 fplot(f, [-20 20]);
 title('y = 200*sin(x)/x');  
 subplot(3, 3, 2);
 ezplot('x^2 + y^2 = 1', [-1.1 1.1]);   
 axis equal;    
 title('单位圆');
 subplot(3, 3, 3);
 ezpolar('1+cos(t)'); 
 title('心形图');
 subplot(3, 3, 4);
 x = [10  10  20  25  35]; 
 name = {'赵', '钱', '孙', '李', '谢'};    
 explode = [0 0 0 0 1]; 
 pie(x, explode, name) 
 title('饼图');
 subplot(3, 3, 5);
 stairs(-2*pi:0.5:2*pi,sin(-2*pi:0.5:2*pi)); 
 title('楼梯图');
 subplot(3, 3, 6);
 stem(-2*pi:0.5:2*pi,sin(-2*pi:0.5:2*pi)); 
 title('火柴杆图');
 subplot(3, 3, 7);
 Z = eig(randn(20,20));    
 compass(Z); 
 title('罗盘图');
subplot(3, 3, 8);
 theta = (-90:10:90)*pi/180; 
 r = 2*ones(size(theta)); 
 [u,v] = pol2cart(theta,r);    
 feather(u,v); 
 title('羽毛图');
 subplot(3, 3, 9);
 t = (1/16:1/8:1)'*2*pi;
 fill(sin(t), cos(t),'r');    
 axis square;   title('八边形');

3.

在这里插入图片描述

x=-3*pi:0.01:3*pi;
for i=1:length(x)
    if(x(i)==0) y(i)=1;
    else y(i)=sin(x(i))/x(i);
    end
end
plot(x,y);
set(gca,'YGrid','on');

在这里插入图片描述
在这里插入图片描述

4.画图形

在这里插入图片描述

图1:

t = 0 : 0.01 : 2*pi;
polar(t, sin(2*t).*cos(2*t))

图2:

ezsurf('u*sin(v)','u*cos(v)', '4*v',[-2*pi,2*pi,-2*pi,2*pi])

图3:

 t=0:pi/20:2*pi;
 [x,y,z]= cylinder(2+sin(t),100); 
 surf(x,y,z); 
 xlabel('X'); ylabel('Y'); zlabel('Z'); 
 set(gca,'color','none'); 
 shading interp; 
 colormap(copper); 
 light('Posi',[-4 -1 0]); 
 lighting phong; 
 material metal; 
 hold on;
 %plot3(-4,-1,0,'p','markersize', 18); 
 % text(-4,-1,0,'光源','fontsize',14,'fontweight','bold'); 

图4:

不知道函数不会画鸭

猜你喜欢

转载自blog.csdn.net/qq_40828914/article/details/83240367