matlab绘制河北大学简约版校徽(彩色、matlab绘图、)

一、代码

function xiaohui()
global img;
img=zeros(300,300);
%画图
set(0,'RecursionLimit',10000)   %增加递归调用限制深度500->10000
%大体框架(未填充)
%其中部分较长线段是为了划分填充区域,防止递归过多导致崩溃
img=MindpointCircle2(125,150,150,img);
img=MindpointCircle2(120,150,150,img);
img=MindpointCircle2( 88,150,150,img);
img=MindpointCircle2(  7, 96,240,img);
img=MindpointCircle2(  7, 204,240,img);
img=xiabanyuan(40,150,160,img);
img=xiabanyuan(45,150,160,img);
img=xiabanyuan(50,150,160,img);
img=hua(110,160,110, 72,img);
img=hua(190,160,190, 72,img);
img=hua(105,160,105, 90,img);
img=hua(100,222,100, 90,img);
img=hua(195,160,195, 90,img);
img=hua(200,222,200, 90,img);
img=hua(85, 90,105, 90,img);
img=hua(195, 90,215, 90,img);
img=hua(150, 25,150, 30,img);
img=hua(150,270,150,275,img);
img=hua(150,210,150,238,img);
img=hua( 62,150,100,150,img);
img=hua(238,150,200,150,img);
img=hua(110, 90,130, 90,img);
img=hua(190, 90,170, 90,img);
img=hua(140, 90,160, 90,img);
img=hua(130,100,140,100,img);
img=hua(160,100,170,100,img);
img=hua(130, 90,130,100,img);
img=hua(140, 90,140,100,img);
img=hua(160, 90,160,100,img);
img=hua(170, 90,170,100,img);
%1921
img=hua(127,241,122,260,img);
img=hua(126,242,121,260,img);
img=hua(122,244,125,244,img);
img=MindpointCircle2(  4,140,250,img);
img=MindpointCircle2(  5,140,250,img);
img=xiabanyuan(  4,139,260,img);
img=xiabanyuan(  5,139,260,img);
img=hua(144,253,144,259,img);
img=hua(145,253,145,259,img);
img=shangbanyuan(  4,158,250,img);
img=shangbanyuan(  5,158,250,img);
img=hua(162,251,152,264,img);
img=hua(163,251,153,264,img);
img=hua(153,263,165,263,img);
img=hua(153,264,165,264,img);
img=hua(174,241,179,260,img);
img=hua(173,241,178,260,img);
img=hua(170,246,174,244,img);
%大
img=hua(135,106,135,124,img);
img=hua(134,106,134,124,img);
img=hua(123,113,146,113,img);
img=hua(123,114,146,114,img);
img=hua(123,114,123,130,img);
img=hua(124,114,124,130,img);
img=hua(145,114,145,130,img);
img=hua(146,114,146,130,img);
img=hua(123,147,134,124,img);
img=hua(124,147,135,124,img);
img=hua(145,147,134,125,img);
img=hua(146,147,135,125,img);
%河
img=hua(165,110,180,110,img);
img=hua(165,109,180,109,img);
img=hua(175,110,175,133,img);
img=hua(176,110,176,133,img);
img=hua(175,133,167,147,img);
img=hua(176,133,168,147,img);
img=hua(166,113,166,123,img);
img=hua(167,113,167,123,img);
img=hua(166,113,166,123,img);
img=hua(171,113,171,123,img);
img=hua(172,113,172,123,img);
img=hua(168,120,170,120,img);
img=hua(168,119,170,119,img);
img=hua(158,104,158,149,img);
img=hua(159,104,159,149,img);
img=hua(153,127,153,147,img);
img=hua(154,127,154,147,img);
img=hua(162,127,163,147,img);
img=hua(163,127,164,147,img);
img=hua(162,106,162,120,img);
img=hua(163,106,163,120,img);
img=hua(155,107,154,122,img);
img=hua(154,107,153,122,img);
img=xiabanyuan(2,169,124,img);
img=xiabanyuan(3,169,124,img);
%北
img=hua(154,151,159,156,img);
img=hua(155,151,160,156,img);
img=hua(172,151,167,156,img);
img=hua(173,151,168,156,img);
img=hua(160,157,160,170,img);
img=hua(161,157,161,170,img);
img=hua(166,157,166,170,img);
img=hua(167,157,167,170,img);
img=hua(167,171,174,190,img);
img=hua(166,171,173,190,img);
img=hua(160,171,153,190,img);
img=hua(161,171,154,190,img);
img=hua(160,158,153,164,img);
img=hua(161,158,154,164,img);
img=hua(166,158,173,164,img);
img=hua(167,158,174,164,img);
img=hua(154,164,154,175,img);
img=hua(153,164,153,175,img);
img=hua(173,164,173,175,img);
img=hua(174,164,174,175,img);
%学
img=hua(130,150,140,157,img);
img=hua(140,150,130,157,img);
img=hua(131,156,140,164,img);
img=hua(139,156,130,164,img);
img=hua(123,150,123,160,img);
img=hua(124,150,124,160,img);
img=hua(145,150,145,160,img);
img=hua(146,150,146,160,img);
img=hua(124,161,128,164,img);
img=hua(123,161,127,164,img);
img=hua(145,161,142,164,img);
img=hua(146,161,143,164,img);
img=hua(124,155,128,158,img);
img=hua(123,155,127,158,img);
img=hua(145,155,142,158,img);
img=hua(146,155,143,158,img);
img=hua(124,151,128,153,img);
img=hua(123,151,127,153,img);
img=hua(145,151,142,153,img);
img=hua(146,151,143,153,img);
img=hua(128,166,142,166,img);
img=hua(128,167,142,167,img);
img=hua(122,172,122,180,img);
img=hua(123,172,123,180,img);
img=hua(147,172,147,180,img);
img=hua(148,172,148,180,img);
img=hua(128,166,122,172,img);
img=hua(128,167,123,172,img);
img=hua(142,166,148,172,img);
img=hua(142,167,147,172,img);
img=hua(135,164,135,165,img);
img=hua(135,178,135,188,img);
img=hua(136,178,136,188,img);
img=hua(135,188,131,191,img);
img=hua(136,188,132,191,img);
img=MindpointCircle2(2,135,175,img);
img=MindpointCircle2(3,135,175,img);
img=xiabanyuan(  6,135,178,img);
img=xiabanyuan(  7,135,178,img);
%统一填充
zhongzi(149, 27,0,1)
zhongzi(151, 27,0,1)
zhongzi(100, 80,0,1)
zhongzi(120,210,0,1)
zhongzi(180,210,0,1)
zhongzi( 80,120,0,1)
zhongzi(220,120,0,1)
zhongzi( 80,180,0,1)
zhongzi(220,180,0,1)
zhongzi(150, 80,0,1)
zhongzi( 96,240,0,1)
zhongzi( 204,240,0,1)
%RGB
img1=(-img+1);  %R
img2=(-img+1);  %G
img3=ones(300,300);%B
img3=img3-img*155/255;
imshow(cat(3,img1,img2,img3));%显示图像


%填充
function zhongzi(x,y,c,d)
global img;
if(img(y,x)==c)
    img(y,x)=d;
    zhongzi(x,y-1,c,d);
    zhongzi(x-1,y,c,d);
    zhongzi(x,y+1,c,d);
    zhongzi(x+1,y,c,d);
end
%画线
function img=hua(a,b,c,d,rm)
img=rm;
xk=(c-a);
yk=(d-b);
if xk==0
    if yk>0        
        for i=b:d
            img(i,a)=1;
        end
    end
    if yk<0   
        for i=d:b
            img(i,a)=1;
        end
    end
return
end
if yk==0
    if xk>0
        for i=a:c
            img(b,i)=1;
        end
    end
    if xk<0
        for i=c:a
            img(b,i)=1;
        end
    end
return
end
ykk=(yk/xk);
if a<c
    y=b;
    for i=a:c
        img(round(y),i)=1;
        y=(y+ykk);
    end
end
if a>c
    y=d;
    for i=c:a
        img(round(y),i)=1;
        y=(y+ykk);
    end
end
xkk=(xk/yk);
if b<d
    x=a;
    for i=b:d
        img(i,round(x))=1;
        x=(x+xkk);
    end
end
if b>d
    x=c;
    for i=d:b
        img(i,round(x))=1;
        x=(x+xkk);
    end
end
%画圆
function img=MindpointCircle2(R,x0,y0,rm)
img=rm;
x=0;d=0-R;y=R;
deltax=3;
deltay=x-R-R;
img(y+y0,x+x0)=1;
img(x+y0,y+x0)=1;
img(-y+y0,x+x0)=1;
img(x+y0,-y+x0)=1;
while x-y<0
    if d<0
        d=d+deltax;
        deltax=deltax+2;
        x=x+1;
    else
        d=d+deltax+deltay;
        deltax=deltax+2;
        deltay=deltay+2;
        x=x+1;y=y-1;
    end
    img(y+y0,x+x0)=1;
    img(x+y0,y+x0)=1;
    img(y0-y,x0-x)=1;
    img(y0-x,x0-y)=1;
    img(x+y0,-y+x0)=1;
    img(-x+y0,y+x0)=1;
    img(y+y0,-x+x0)=1;
    img(-y+y0,x+x0)=1;
end
%画下半圆
function img=xiabanyuan(R,x0,y0,rm)
img=rm;
x=0;d=0-R;y=R;
deltax=3;
deltay=x-R-R;
img(y+y0,x+x0)=1;
img(x+y0,y+x0)=1;
img(x+y0,-y+x0)=1;
while x-y<0
    if d<0
        d=d+deltax;
        deltax=deltax+2;
        x=x+1;
    else
        d=d+deltax+deltay;
        deltax=deltax+2;
        deltay=deltay+2;
        x=x+1;y=y-1;
    end
    img(y+y0,x+x0)=1;
    img(x+y0,y+x0)=1;
    img(x+y0,-y+x0)=1;
    img(y+y0,-x+x0)=1;
end
function img=shangbanyuan(R,x0,y0,rm)
img=rm;
x=0;d=0-R;y=R;
deltax=3;
deltay=x-R-R;
img(-y+y0,x+x0)=1;
img(x+y0,y+x0)=1;
img(x+y0,-y+x0)=1;
while x-y<0
    if d<0
        d=d+deltax;
        deltax=deltax+2;
        x=x+1;
    else
        d=d+deltax+deltay;
        deltax=deltax+2;
        deltay=deltay+2;
        x=x+1;y=y-1;
    end
    img(y0-y,x0-x)=1;
    img(y0-x,x0-y)=1;
    img(-x+y0,y+x0)=1;;
    img(-y+y0,x+x0)=1;
end

二、结果

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值