(来源:百度百科冰墩墩)
简单地再讲一下大致地过程:通过PS描摹得到冰墩墩的轮廓线,然后通过matlab编程提取轮廓线坐标,有了坐标就可以完美动态展示任何一个想要绘制的部分,还能实现图形的矢量化操作。不知道如何用matlab提取轮廓线坐标伙伴,可以参看matlab爱好者公众号之前推送的文章(matlab任意图形轮廓坐标提取【含源代码】)。
整个绘制过程,主要涉及到plot和patch两个matlab绘图函数,整个冰墩墩被划分成60个小部分,包括所有冰墩墩部位、北京2022年冬奥会会徽、奥运会会徽以及各个文字,全部实现了坐标化。在细节表现上自认为比目前搜到的所有matlab及python绘制的都更加完美,下图是matlab爱好者版冰墩墩,大家可以自行比对。
当然,也制作了一个动态绘制冰墩墩的视频,让伙伴体验一下用matlab绘制冰墩墩的乐趣:
视频时长:1分27秒
背景音乐来源:bilibili.com/video/BV1Aq4y187z5
http://mpvideo.qpic.cn/0bc364acqaaatqaelwikwbrfb56dfd3qakaa.f10002.mp4?dis_k=44de2edc1d379b54ebf420f42431d94a&dis_t=1651060166&vid=wxv_2269257192652537865&format_id=10002&support_redirect=0&mmversion=false
部分代码展示
代码语言:javascript复制clc;clear;close all;
% 自定义figure属性
figure('Position',[518 51 1003 971],'Name','冰墩墩 (Bing DwenDwen) —— matlab爱好者','NumberTitle','off','Color','w','Menubar','none');
% 自定义坐标轴位置
axes('Position',[0.01 0.01 0.99 0.99]);
axis equal;
% 设置坐标轴范围
xlim([0 6500]);
ylim([0 6500]);
% 设置Y轴方向
set(gca,'YDir','reverse');