0效果:
1素材说明: 我们需要在m文件路径下建立名为pic的文件夹,并且在里面放入下面这些图: 这些月饼图的制作方法参见上一篇: 中秋节快到了,一起用MATLAB绘制一款2.5D月饼叭
2完整代码:
function mmOOnnCCaaKKee
strSet={'蛋黄莲蓉',40/100;
'抹茶',20/100;
'紫薯',15/100;
'鲜肉',15/100;
'辣椒炒肉',10/100};
probVal=cell2mat(strSet(:,2));
% 将概率密度函数转换为概率分布函数
for i=2:length(probVal)
probVal(i)=probVal(i)+probVal(i-1);
end
probVal=[0,probVal'];
path='.\pic\';%文件夹名称
files=dir(fullfile(path,'*.png'));
picNum=size(files,1);
%遍历路径下每一幅图像
for i=1:picNum
fileName=strcat(path,files(i).name);
[img,~,alp]=imread(fileName);
imgSet{i}=img;
alpSet{i}=alp;
end
fig=figure('units','pixels',...
'position',[20 60 560 560],...
'Color',[1 1 1]);
ax=axes('Units','pixels',...
'parent',fig,...
'Color',[1 1 1],...
'Position',[0 0 560,560],...
'XLim',[0,100],...
'YLim',[0,100],...
'XColor','none',...
'YColor','none');
hold(ax,'on')
ax.YDir='reverse';
ax.XDir='normal';
[nrow,ncol,~]=size(imgSet{1});
[XMesh,YMesh]=meshgrid((1:ncol)-(1+ncol)/2,(1:nrow)-(1+nrow)/2);
%disMesh=sqrt(XMesh.^2+YMesh.^2);
thetaMesh=atan2(YMesh,XMesh)+pi;
thetaMesh=thetaMesh(:,end:-1:1);
for i=1:length(probVal)-1
boolSet=thetaMesh;
boolSet=boolSet>probVal(i)*2*pi&boolSet
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?