MATLAB | 万圣节来画个简单的可爱鬼叭!

万圣节要到啦一起来画个可爱鬼吧~

代码比较的短:

完整代码

matlab 复制代码
figure('Units','normalized','Position',[.2,.1,.52,.72]);
ax=gca;hold on;axis off; 
ax.DataAspectRatio=[1,1,1];
ax.YDir='reverse';
ax.XLim=[0,100];
ax.YLim=[0,100];
[X,Y]=meshgrid(linspace(0,1,200));
Z=sqrt((X-.5).^2+(Y-.5).^2);
image([0,100],[0,100],Z.*420);
colormap(flipud(gray))
% colormap(gray)
% colormap(summer)
% 配色及基础数据 ===========================================================
CList=[255,255,255;  83, 70, 63; 
       158,158,157; 254,201,206; 
       246,213,85 ; 253,247,197]./255;
CircT=linspace(0,2*pi,200);
% 绘制叉子或者星星 =================================================================
plot([85,91.3],[24.8,52.8],'Color',CList(2,:),'LineWidth',18)
% 画叉子的代码
% plot([80,82,92.5,90.7],[28,34.3,31,25.2],'Color',CList(2,:),'LineWidth',18)
% 画星星的代码
StarT=[linspace(0,2*pi,6);linspace(0,2*pi,6)+pi/5];
StarT=StarT(:,1:5);StarT=StarT(:);StarR=[1;cos(pi/5)*2]*ones(1,5);StarR=StarR(:);
fill(cos(StarT).*StarR.*5+85,sin(StarT).*StarR.*5+25,CList(5,:),'LineWidth',2)
fill(cos(StarT).*StarR.*3+85,sin(StarT).*StarR.*3+25,CList(6,:),'EdgeColor','none')
% 绘制身体 =================================================================
fill([19.3,15.1,12.7,10,8.9,9.6,linspace(10,90,200),91.3,92.4,91.3,88.4,84.1,77],...
    [43.4,54.7,63.2,72.6,79,82,-linspace(-1.5,1.5,200).^2+3.*sin(linspace(0,7*pi,200))+85,...
    80.9,76.6,71.5,64.2,54.5,39.2],CList(1,:),'LineWidth',12,'EdgeColor',CList(2,:))
fill([24,cos(CircT(80:200)).*3.5+16],...
     [60,sin(CircT(80:200)).*4.1+46],...
      CList(1,:),'LineWidth',14,'EdgeColor',CList(2,:))
fill([76,cos(CircT([100:200,1:40])).*3.5+82],...
     [55,sin(CircT([100:200,1:40])).*4.5+43.5],...
      CList(1,:),'LineWidth',14,'EdgeColor',CList(2,:))
fill(cos(CircT).*30+49.5,sin(CircT).*30+47.5,CList(1,:),'LineWidth',12,'EdgeColor',CList(1,:))
plot(cos(CircT(100:195)).*30+49.5,sin(CircT(100:195)).*30+47.5,'Color',CList(2,:),'LineWidth',12)
fill([42.8,41.3,40,38.6,37.4,36.8,36],[19,16.6,14.3,13.3,15.1,17.8,20.6],CList(3,:),'LineWidth',12,'EdgeColor','none')
plot([42.8,41.3,40,38.6,37.4,36.8,36],[19,16.6,14.3,13.3,15.1,17.8,20.6],'Color',CList(2,:),'LineWidth',12)
fill([61.7,61.3,60.3,59,57.5,56.1,54.7,52],[20,18.6,16.3,14.3,13.4,15.5,17.2,17.5],CList(3,:),'LineWidth',12,'EdgeColor','none')
plot([61.7,61.3,60.3,59,57.5,56.1,54.7,52],[20,18.6,16.3,14.3,13.4,15.5,17.2,17.5],'Color',CList(2,:),'LineWidth',12)
% 绘制五官 =================================================================
fill(cos(CircT).*6.2+33.7,sin(CircT).*5.9+42.5,CList(4,:),'EdgeColor','none')
fill(cos(CircT).*6.2+62.1,sin(CircT).*5.9+39.7,CList(4,:),'EdgeColor','none')
fill(cos(CircT).*2.2+39.1,sin(CircT).*2.8+37.8,CList(2,:),'EdgeColor','none')
fill(cos(CircT).*2.2+56.3,sin(CircT).*2.8+35.9,CList(2,:),'EdgeColor','none')
fill(cos(CircT).*1.1+51,sin(CircT).*1.2+39.3,CList(2,:),'EdgeColor','none')
plot([43.7,45.7,48,50,51.7],[39.1,39.7,39.5,38.8,38.1],'Color',CList(2,:),'LineWidth',6)

关于背景色

背景色是通过这里来设置的:

matlab 复制代码
[X,Y]=meshgrid(linspace(0,1,200));
Z=sqrt((X-.5).^2+(Y-.5).^2);
image([0,100],[0,100],Z.*420);
colormap(flipud(gray))
% colormap(gray)
% colormap(summer)

更换colormap可以试试不同的背景色:


关于叉子或者星星

绘制叉子或者绘制星星是在这里实现的:

matlab 复制代码
plot([85,91.3],[24.8,52.8],'Color',CList(2,:),'LineWidth',18)
% 画叉子的代码
% plot([80,82,92.5,90.7],[28,34.3,31,25.2],'Color',CList(2,:),'LineWidth',18)
% 画星星的代码
StarT=[linspace(0,2*pi,6);linspace(0,2*pi,6)+pi/5];
StarT=StarT(:,1:5);StarT=StarT(:);StarR=[1;cos(pi/5)*2]*ones(1,5);StarR=StarR(:);
fill(cos(StarT).*StarR.*5+85,sin(StarT).*StarR.*5+25,CList(5,:),'LineWidth',2)
fill(cos(StarT).*StarR.*3+85,sin(StarT).*StarR.*3+25,CList(6,:),'EdgeColor','none')

祝MATLABer万圣节快乐!!

一起画个可爱鬼叭

相关推荐
呆萌很28 分钟前
字典推导式练习题
python
闻缺陷则喜何志丹32 分钟前
【贪心 字典序 回文 最长公共前缀】LeetCode3734. 大于目标字符串的最小字典序回文排列|分数未知
c++·算法·力扣·贪心·字典序·回文·最长公共前缀
weixin_514221851 小时前
FDTD代码学习-1
学习·算法·lumerical·fdtd
闲人编程1 小时前
Python在云计算中的应用:AWS Lambda函数实战
服务器·python·云计算·aws·lambda·毕设·codecapsule
小兔崽子去哪了1 小时前
Python 数据分析环境搭建与工具使用指南
python
AI柠檬2 小时前
机器学习:数据集的划分
人工智能·算法·机器学习
不惑_2 小时前
Java 使用 FileOutputStream 写 Excel 文件不落盘?
开发语言·python
IT小哥哥呀2 小时前
Python实用技巧:批量处理Excel数据并生成销售报表(含实战案例)
python·pandas·数据可视化·数据处理·报表生成·excel自动化·办公神器
让我们一起加油好吗2 小时前
【数论】裴蜀定理与扩展欧几里得算法 (exgcd)
算法·数论·裴蜀定理·扩展欧几里得算法·逆元
烤奶要加冰2 小时前
PyCharm 社区版全平台安装指南
ide·windows·python·pycharm·mac