您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页有趣的MATLAB 4.图像程序

有趣的MATLAB 4.图像程序

来源:爱go旅游网


MATLAB有趣图像程序 1.五星红旗

function varargout=wxhq(varargin)

x=[0 0 40 40 0];

y=[0 13 13 0 0];

k=40/13;

fill(x,y,'r')

hold on

plot(x,y,'r')

axis([0 40 0 13])

seta=pi/6;

R=1.5;R2=0.55;x0=7;y0=9;seta=0;

fliu(R,R2,x0,y0,seta,k)

R=0.6;R2=0.23;x0=15;y0=11.6;seta=-pi/20;

fliu(R,R2,x0,y0,seta,k)

R=0.6;R2=0.23;x0=20;y0=10;seta=pi/20;

fliu(R,R2,x0,y0,seta,k)

R=0.6;R2=0.23;x0=19;y0=7;seta=pi/25;

fliu(R,R2,x0,y0,seta,k)

R=0.6;R2=0.23;x0=16;y0=5;seta=-pi/10;

fliu(R,R2,x0,y0,seta,k)

axis off

function fliu(R,R2,x0,y0,seta,k)

x=zeros(1,10);

y=x;

for i=1:5

x(2*(i-1)+1)=R*cos(pi/2+2*pi/5*(i-1)+seta);

x(2*i)=R2*cos(pi/2+2*pi/5*(i-1)+pi/5+seta);

y(2*(i-1)+1)=R*sin(pi/2+2*pi/5*(i-1)+seta);

y(2*i)=R2*sin(pi/2+2*pi/5*(i-1)+pi/5+seta);

end

x(11)=x(1);

y(11)=y(1);

x=x*k+x0;

y=y+y0;

fill(x,y,[1 0.7 0])

plot(x,y,'y')

2.函数图像

帽子第一个

x=-18:0.5:18;y=x';

u=ones(size(y))*x;

v=y*ones(size(x));

r=sqrt(u.^2+v.^2)+eps;

z=sin(r)./r;

mesh(z);

xlabel('x');

ylabel('y');

帽子第二个

x=-18:0.5:18;y=x;

%产生x,y两个向量

[x,y]=meshgrid(x,y);

%形成二维网格数据

r=sqrt(x.^2+y.^2)+eps;

%加上eps避免当分母r趋向于0时会无法定义

z=sin(r)./r;

%产生z轴数据

surf(x,y,z);

分形

p=[0 0;10 0];

a=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)];

for k=1:5

n=max(size(p));d=diff(p)/3;

q=p(1:n-1,:);

p(5:4:4*n-3,:)=p(2:n,:);

p(2:4:4*n-6,:)=q+d;

p(3:4:4*n-5,:)=p(2:4:4*n-6,:)+d*a';

p(4:4:4*n-4,:)=q+2*d;

end

plot(p(:,1),p(:,2))

分图

x=0:0.05:8;

y1=2*sin(x);

y2=2*cos(x);

y3=sin(2*x);

y4=cos(2*x);

subplot(2,2,1);

plot(x,y1);

title('2sinx')

subplot(2,2,2);

plot(x,y2);

title('2cosx')

subplot(2,2,3);

plot(x,y3);

title('sin2x')

subplot(2,2,4);

plot(x,y4);

title('cos2x')

[x,y,z]=sphere(30);

surf(x,y,z),box

3.统计图

x=[8 20 36 24 12];

subplot(221);

pie(x,[1 0 0 0 1]);

title('饼图');

subplot(222);

bar(x,'g');

title('垂直条形图');

subplot(223);

barh(x,'r');

title('水平条形图');

4.囧

syms x;

g=1/(x^2+2*x-3);

ezplot(g,-10,10);

5.不可说,哈哈

[X, Y] = meshgrid(0.01:0.01:1, 0.01:0.01:1);

Zfun =@(x,y)12.5*x.*log10(x).*y.*(y-1)+exp(-((25 ...

*x - 25/exp(1)).^2+(25*y-25/2).^2).^3)./25;

Z = Zfun(X,Y);

figure;

surf(Y,Z,X,'FaceColor',[1 0.75 0.65],'linestyle','none');

hold on

surf(Y+0.98,Z,X,'FaceColor',[1 0.75 0.65],'linestyle','none');

axis equal; view([116 30]);

camlight;

lighting phong; % 设置光照和光照模式

6.爱心

[x,y]=meshgrid(-10:0.01:10);

z=-(17*x.^2-16*y.*abs(x)+17.*y.^2);

[c,h]=contourf(z,100);set(h,'linestyle','none')

7. 贝塞尔曲线

%我反正没打开。。。。。。

clear %清除变量

f=figure; %创建图形窗口并取句柄

dt=0.01; %微小增量

while get(f,'currentcharacter')~=char(27) %循环终止条件——按esc键终止

M=rand(2,4); %生成一个随机矩阵

cx=3*(M(1,2)-M(1,1)); %算出六个系数

bx=3*(M(1,3)-M(1,2))-cx;

ax=M(1,4)-M(1,1)-cx-bx;

cy=3*(M(2,2)-M(2,1));

by=3*(M(2,3)-M(2,2))-cy;

ay=M(2,4)-M(2,1)-cy-by;

M1=rand(2,4); %生成另一个随机矩阵

cx1=3*(M1(1,2)-M1(1,1)); %算出另外六个变量

bx1=3*(M1(1,3)-M1(1,2))-cx1;

ax1=M1(1,4)-M1(1,1)-cx1-bx1;

cy1=3*(M1(2,2)-M1(2,1));

by1=3*(M1(2,3)-M1(2,2))-cy1;

ay1=M1(2,4)-M1(2,1)-cy1-by1;

t=0:0.05:1; %向量t,也是曲线的x的范围

for i=1:60 %每次生成的曲线移动六十次(动画效果)

xt=ax*t.^3+bx*t.^2+cx*t.^1+M(1,1); %第一簇贝塞尔曲线的x的参数方程

yt=ay*t.^3+by*t.^2+cy*t.^1+M(2,1); %第一簇曲线有三条

yt1=ay*t.^3+by*t.^2+cy*t.^1+M(2,1)+0.08;

yt2=ay*t.^3+by*t.^2+cy*t.^1+M(2,1)-0.08;

xta=ax1*t.^3+bx1*t.^2+cx1*t.^1+M1(1,1);%第二簇贝塞尔曲线的参数方程

yta=ay1*t.^3+by1*t.^2+cy1*t.^1+M1(2,1);%第二簇曲线也有三条

yta1=ay1*t.^3+by1*t.^2+cy1*t.^1+M1(2,1)+0.08;

yta2=ay1*t.^3+by1*t.^2+cy1*t.^1+M1(2,1)-0.08;

plot(xt,yt,'o-r',xt,yt1,'-.g',xt,yt2,'-*c',...

xta,yta,'y',xta,yta1,'.m',xta,yta2,'ow');%作图

axis off %不显示坐标轴(这样看起来更像屏保)

t=t+dt; %曲线移动dt

pause(0.03); %移动慢一点以便引起人的视觉感受

end %for循环结束

drawnow; %画当前的图像

end %结束

i

i以上内容均来自于网络,由万里霜晨月整理。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务