matlab极坐标六边形图片,matlab怎样直接画出六边形

%by markfang

%2018 6 24

function qunliu( xx,yy,r,ceng )

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

hang=linspace(0,2*pi,7);

for i=1:1:ceng

for j=1:1:length(hang)

theta(i,i*j-i+1) = hang(j);

cx(i,i*j-i+1)=sqrt(3)*i*r*cos(theta(i,i*j-i+1));  %这是每层上角度为pi/3,2*pi/3...小区中心

cy(i,i*j-i+1)=sqrt(3)*i*r*sin(theta(i,i*j-i+1));

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if(ceng>=2)

for i=2:1:ceng

for j=1:1:length(hang)-1

for k=1:1:i-1     %求那些非pi/3整数倍角度上的中心,依据第n层的是n分点

cx(i,i*j-i+1+k)=((i-k)*cx(i,i*j-i+1)+k*cx(i,i*j+1))/i;

cy(i,i*j-i+1+k)=((i-k)*cy(i,i*j-i+1)+k*cy(i,i*j+1))/i;

end

end

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

zx=cx+xx;

zy=cy+yy;

f=getframe(gcf);

imind=frame2im(f);

[imind,cm] = rgb2ind(imind,256);

imwrite(imind,cm,'正六边形组成多层图像动画绘制过程.gif','gif', 'Loopcount',inf,'DelayTime',0.5);%第一次必须创建!

for i=1:1:ceng

for j=1:1:6*i

cirliu(zx(i,j),zy(i,j),r);

text(zx(i,j),zy(i,j),num2str(i))

hold on;

pause(0.2)

f=getframe(gcf);

imind=frame2im(f);

[imind,cm] = rgb2ind(imind,256);

imwrite(imind,cm,'正六边形组成多层图像动画绘制过程.gif','gif','WriteMode','append','DelayTime',0.5);%动态图保存gif格式.

end

end

%1.matlab里要生成动态图像关键有两个:

%<1>图像数据,要准备多幅同样大小的图像或者将图像数据变化的过程保存下来;

%<2>正确调用imwrite函数,最主要有两个属性,1是DelayTime,控制图像切换的间隔,

%2是LoopCount,用于设置图像默认的循环次数,默认是无穷次(一般的GIF图都是无穷次),即不断循环,若要手动设置此值,0代表循环一次,1代表循环两次,以此类推。

%2.可以将Matlab本身用getframe获得的帧频记录转换成avi视频,函数为movie2avi(存储帧频的矩阵, avi名称)。

%解决方法一:如上所说先使用 overwrite mode ,之后再改回 append mode,这种方法可以,但是由于是附加操作,这样制作出了的gif的第一帧和最后一帧是一样的。

%解决方法二: 在使用 append mode,前加一条语句来创建*.gif文件,但要保证只在第一帧时创建.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function cirliu(xx,yy,r)

theta = linspace(pi/6,13*pi/6,7);

plot(r*cos(theta)+xx,r*sin(theta)+yy,'r-');

fill(r*cos(theta)+xx,r*sin(theta)+yy,'g');%填充颜色

hold on;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值