MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

这篇具有很好参考价值的文章主要介绍了MATLAB | 这些各种各样的花里胡哨的折线填充图咋画。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这些各种各样的花里胡哨的折线填充图咋画?

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

折线下面填充纯色的话area函数很容易做到,但上面那些各种花里胡哨的填充图就没那么容易做到了,本期就来讲讲这些玩意都是咋画的:

事先说明,为了绘图好看本文绝大多数图像都使用如下函数进行修饰:

function defualtAxes
ax=gca;hold on;box on
ax.XGrid='on';
ax.YGrid='on';
ax.XMinorTick='on';
ax.YMinorTick='on';
ax.LineWidth=.8;
ax.GridLineStyle='-.';
ax.FontName='Cambria';
ax.FontSize=12;
ax.GridAlpha=.03;
end

1 二维特殊填充

二维填充所用到的数据是由以下函数生成的:

function [X,Y1,Y2,Y3]=demoData()
X0=1:40;
Y01=[0,1,3,2,4,5,7,6,21,15,...
    19,23,27,14,10,5,4,7,...
    5,8,3,9,11,22,29,31,...
    34,27,40,52,33,20,19,...
    16,14,60,55,54,66,70];
Y02=[35,34,38,32,26,17,25,8,15,2,...
    7,9,17,14,10,15,24,17,...
    25,28,33,49,31,42,29,31,...
    34,27,40,52,33,20,19,...
    26,24,10,15,14,6,0];

X=linspace(1,40,500);
Y1=interp1(X0,Y01,X,'cubic');
Y2=interp1(X0,Y02,X,'cubic');
Y3=X+3;
end

三条折线大概长这样:

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

我们需要数据点尽可能的密集,因此可以适当插插值。


1.1 悬挂填充折线图

这个很简单就是两次fill即可:

% 悬挂填充折线图

% 获取数据
[X,Y1,Y2,Y3]=demoData();

hold on
% Uy:上面的辅助线y值,Ly:下面的辅助线y值
Uy=40;Ly=20;
yline(Uy,'LineWidth',.8,'LineStyle','--')
yline(Ly,'LineWidth',.8,'LineStyle','--')

% 填充颜色
UY=Y1;UY(UY<Uy)=Uy;
fill([X(1),X,X(end)],[Uy,UY,Uy],[255,153,154]./255,'EdgeColor','none','FaceAlpha',.9)
LY=Y1;LY(LY>Ly)=Ly;
fill([X(1),X,X(end)],[Ly,LY,Ly],[153,153,253]./255,'EdgeColor','none','FaceAlpha',.9)

% 绘制折线图
plot(X,Y1,'LineWidth',1,'Color',[0,0,0])

% 坐标区域修饰
defualtAxes()

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


1.2 双关系填充

就是看两条折线关系,根据大小关系赋予不同颜色:

% 双关系填充

% 获取数据
[X,Y1,Y2,Y3]=demoData();

hold on
% 获取Y轴数据范围
YY=[Y1,Y3];
YLim=[min(YY),max(YY)];

% 构造并绘制网格
[XMesh,YMesh]=meshgrid(X,linspace(YLim(1),YLim(2),1000));
YMeshA=repmat(Y1,[1000,1]);
YMeshB=repmat(Y3,[1000,1]);
CMesh=nan.*XMesh;
CMesh(YMesh>=YMeshB&YMesh<=YMeshA)=1;
CMesh(YMesh>=YMeshA&YMesh<=YMeshB)=2;
surf(XMesh,YMesh,XMesh.*0,'EdgeColor','none','CData',CMesh,'FaceColor','flat','FaceAlpha',.8)

% 设置配色
ColorList=[255,153,154;153,153,253]./255;
colormap(ColorList)

% 绘制折线图
plot(X,Y1,'LineWidth',1,'Color',[0,0,0])
plot(X,Y3,'LineWidth',1,'Color',[0,0,0])

% 坐标区域修饰
defualtAxes()

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


1.3 双关系渐变填充

根据俩折线差值大小和正负填充不同颜色,这里使用了含nan的surf函数绘制填充形状:

% 双关系渐变填充

% 获取数据
[X,Y1,Y2,Y3]=demoData();

hold on
% 获取Y轴数据范围
YY=[Y1,Y3];
YLim=[min(YY),max(YY)];

% 构造并绘制网格
[XMesh,YMesh]=meshgrid(X,linspace(YLim(1),YLim(2),1000));
YMeshA=repmat(Y1,[1000,1]);
YMeshB=repmat(Y3,[1000,1]);
CMesh=nan.*XMesh;
YMeshD=YMeshA-YMeshB;
CMesh(YMesh>=YMeshB&YMesh<=YMeshA)=YMeshD(YMesh>=YMeshB&YMesh<=YMeshA);
CMesh(YMesh>=YMeshA&YMesh<=YMeshB)=YMeshD(YMesh>=YMeshA&YMesh<=YMeshB);
surf(XMesh,YMesh,XMesh.*0,'EdgeColor','none','CData',CMesh,'FaceColor','flat','FaceAlpha',.8)

% 设置配色
colormap(turbo(32))
% colormap(slanCM(100,32))
colorbar

% 绘制折线图
plot(X,Y1,'LineWidth',1,'Color',[0,0,0])
plot(X,Y3,'LineWidth',1,'Color',[0,0,0])

% 坐标区域修饰
defualtAxes()

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

想要更丰富配色可以使用slanCM工具:https://slandarer.blog.csdn.net/article/details/127719784

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


1.4 单变量渐变填充

这个就简单很多,就是和自己的最小值作比较。

% 单变量渐变填充

% 获取数据
[X,Y1,Y2,Y3]=demoData();

hold on
% 获取Y轴数据范围
YY=Y1;
YLim=[min(YY),max(YY)];

% 构造并绘制网格
[XMesh,YMesh]=meshgrid(X,linspace(YLim(1),YLim(2),1000));
YMeshA=repmat(YY,[1000,1]);
CMesh=nan.*XMesh;
YMeshD=YMeshA-YLim(1);
CMesh(YMesh>=YLim(1)&YMesh<=YMeshA)=YMeshD(YMesh>=YLim(1)&YMesh<=YMeshA);
surf(XMesh,YMesh,XMesh.*0,'EdgeColor','none','CData',CMesh,'FaceColor','flat','FaceAlpha',.8)

% 设置配色
colormap(turbo(32))
colormap(slanCM(136,32))
colorbar

% 绘制折线图
plot(X,YY,'LineWidth',1,'Color',[0,0,0])

% 坐标区域修饰
defualtAxes()

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


1.5 单变量横向渐变填充

横向条纹填充,和旁边colorbar完全对的上:

% 单变量横向渐变填充

% 获取数据
[X,Y1,Y2,Y3]=demoData();

hold on
% 获取Y轴数据范围
YY=Y1;
YLim=[min(YY),max(YY)];

% 构造并绘制网格
[XMesh,YMesh]=meshgrid(X,linspace(YLim(1),YLim(2),1000));
YMeshA=repmat(YY,[1000,1]);
CMesh=nan.*XMesh;
CMesh(YMesh>=YLim(1)&YMesh<=YMeshA)=YMesh(YMesh>=YLim(1)&YMesh<=YMeshA);
surf(XMesh,YMesh,XMesh.*0,'EdgeColor','none','CData',CMesh,'FaceColor','flat','FaceAlpha',.8)

% 设置配色
colormap(turbo(32))
colormap(slanCM(141,32))
colorbar

% 绘制折线图
plot(X,YY,'LineWidth',1,'Color',[0,0,0])

% 坐标区域修饰
defualtAxes()

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


1.6 区域填充

% 区域填充

% 获取数据
[X,Y1,Y2,Y3]=demoData();

hold on
% 设置填充区域范围
UXLim=[20,30];
xline(UXLim(1),'LineWidth',.8,'LineStyle','--')
xline(UXLim(2),'LineWidth',.8,'LineStyle','--')

% 填充颜色
YY=Y1;
UY=YY(X<=UXLim(2)&X>=UXLim(1));
UX=X(X<=UXLim(2)&X>=UXLim(1));
fill([UXLim(1),UX,UXLim(end)],[min(YY),UY,min(YY)],[255,153,154]./255,'EdgeColor','none','FaceAlpha',.9)

% 绘制折线图
plot(X,Y1,'LineWidth',1,'Color',[0,0,0])

% 坐标区域修饰
defualtAxes()

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


1.7 分段x轴区域填充

就多分几段多填几种颜色:

% 分段X轴区域填充


% 获取数据
[X,Y1,Y2,Y3]=demoData();

hold on
% 设置间断点和颜色
pwPnt=[10,20,30];
ColorList=[0.8275    0.7294    0.4078
    0.8353    0.4118    0.3647
    0.3647    0.5490    0.6588
    0.3961    0.6431    0.4745];
colormap(ColorList)
% 获取Y轴数据范围
YY=Y1;
YLim=[min(YY),max(YY)];
% 构造并绘制网格
[XMesh,YMesh]=meshgrid(X,linspace(YLim(1),YLim(2),1000));
YMeshA=repmat(YY,[1000,1]);
CMesh=nan.*XMesh;
pwPnt=[min(X),pwPnt,max(X)];
for i=1:length(pwPnt)-1
    CMesh(YMesh<=YMeshA&XMesh>=pwPnt(i)&XMesh<=pwPnt(i+1))=i;
end
surf(XMesh,YMesh,XMesh.*0,'EdgeColor','none','CData',CMesh,'FaceColor','flat','FaceAlpha',.7)
% 绘制分界线
for i=1:length(pwPnt)
    plot(pwPnt([i,i]),[min(YY),interp1(X,YY,pwPnt(i),'linear')],'Color',[0,0,0],'LineWidth',1);
end

% 绘制折线图
plot(X,Y1,'LineWidth',1,'Color',[0,0,0])

% 坐标区域修饰
defualtAxes()

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


2 三维特殊填充

三维填充所用到的数据是由以下函数生成的:

function [X,Y]=demoDataN()
X1=normrnd(2,2,1,50);
X2=[normrnd(4,4,1,50),normrnd(5,2,1,50)];
X3=[normrnd(6,2,1,50),normrnd(8,4,1,50)];
X4=[normrnd(12,1,1,50),normrnd(12,4,1,50)];
X5=[normrnd(10,2,1,50),normrnd(10,4,1,50)];
X6=[normrnd(7,2,1,50),normrnd(7,4,1,50)];
X7=[normrnd(4,2,1,50),normrnd(4,4,1,50)];
Data={X1,X2,X3,X4,X5,X6,X7};
Y=zeros(7,500);
for i=1:length(Data)
    tX=Data{i};tX=tX(:)';
    [F,Xi]=ksdensity(tX,linspace(-5,10,500));
    Y(i,:)=F;
end
X=Xi;
end

X是1xn向量,Y是7xn向量:

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


2.1 3D单色填充折线

fill3函数简简单单。

% 3D填充折线

% 获取数据
[X,Y]=demoDataN();

% 设置颜色
colorList=[0.2549    0.2784    0.4196
    0.4039    0.3294    0.4706
    0.6196    0.3882    0.4549
    0.7765    0.4824    0.4353
    0.8706    0.6078    0.4431
    0.9373    0.7373    0.5098
    0.9843    0.8745    0.6353];

hold on
% 绘制填充
for i=1:size(Y,1)
    fill3([X(1),X,X(end)],[i,X.*0+i,i],[min(Y(i,:)),Y(i,:),min(Y(i,:))],...
        colorList(i,:),'FaceAlpha',.7,'EdgeColor','none')
end

% 绘制折线图
for i=1:size(Y,1)
    plot3(X,X.*0+i,Y(i,:),'LineWidth',1,'Color',colorList(i,:))
end

% 坐标区域修饰
defualtAxes();
set(gca,'Projection','perspective','GridAlpha',.05)
view(39,45)

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


2.2 3D高度渐变填充折线

就把surf函数转一下然后绘制多次即可:

% 3D高度渐变填充折线

% 获取数据
[X,Y]=demoDataN();

YLim=[min(min(Y)),max(max(Y))];
% 构造并绘制网格
[XMesh,YMesh]=meshgrid(X,linspace(YLim(1),YLim(2),1000));
hold on
for i=1:size(Y,1)
    YMeshA=repmat(Y(i,:),[1000,1]);
    CMesh=nan.*XMesh;
    YMeshD=YMeshA-YLim(1);
    CMesh(YMesh>=YLim(1)&YMesh<=YMeshA)=YMeshD(YMesh>=YLim(1)&YMesh<=YMeshA);
    surf(XMesh,XMesh.*0+i,YMesh,'EdgeColor','none','CData',CMesh,'FaceColor','flat','FaceAlpha',.8)
end

% 绘制折线图
for i=1:size(Y,1)
    plot3(X,X.*0+i,Y(i,:),'LineWidth',1,'Color',[0,0,0,.8])
end

% 设置配色
colorList=turbo(64);
% colorList=slanCM(110,64);
colormap(colorList)
colorbar

% 坐标区域修饰
defualtAxes();
set(gca,'Projection','perspective','GridAlpha',.05)
view(16,36)

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


3 其他填充

3.1 单色渐变填充

写了个工具函数:

function areah(varargin)
% @author : slandarer
if isa(varargin{1},'matlab.graphics.axis.Axes')
    ax=varargin{1};varargin(1)=[];
else
    ax=gca;
end
hold on
X=varargin{1};Y=varargin{2};
XList=linspace(min(X(:)),max(X(:)),1000);
YList=linspace(min(Y(:)),max(Y(:)),1000);
[~,YMesh]=meshgrid(XList,YList);
YY=interp1(X(:),Y(:),XList);

coe.Color=lines(ax.ColorOrderIndex);
coe.LineWidth=2;
for i=3:2:length(varargin)
    coe.(varargin{i})=varargin{i+1};
end
CMesh=zeros(1000,1000,3);
CMesh(:,:,1)=ones(1000,1000).*coe.Color(1);
CMesh(:,:,2)=ones(1000,1000).*coe.Color(2);
CMesh(:,:,3)=ones(1000,1000).*coe.Color(3);
AMesh=linspace(0,.5,1000)'.*ones(1,1000);
AMesh(YMesh>YY)=0;

image(ax,[min(X(:)),max(X(:))],[min(Y(:)),max(Y(:))],CMesh,'AlphaData',AMesh)
plot(ax,X(:),Y(:),'Color',coe.Color,'LineWidth',coe.LineWidth)
ax.ColorOrderIndex=ax.ColorOrderIndex+1;
end

和area函数使用方法几乎一模一样,给出一组使用效果:

% areahDemo
% 生成数据
x=linspace(-8,12,100);
y1=normpdf(x,4,6);
y2=normpdf(x,0,1).*0.5+normpdf(x,4,2).*0.5;
y3=normpdf(x,-3,2);
y4=normpdf(x,-2,2)+normpdf(x,-3,2);
y5=normpdf(x,4,6)+normpdf(x,-3,2);

% 简单修饰坐标区域1
ax1=axes(gcf,'Position',[0.1,0.54,0.44,0.44]);hold on
ax1.XLim=[-8,12];
ax1.YLim=[-.1,.5];
ax1.YTick=0:.1:.4;
ax1.XTickLabel='';
ax1.Box='on';
ax1.LineWidth=.8;
ax1.FontName='Cambria';
ax1.YLabel.String='YYYYY1';
% 绘制渐变面积图
areah(x,y2,'Color',[150,60,59]./255,'LineWidth',1);
areah(x,y4,'Color',[74,156,167]./255,'LineWidth',1);
text(-7,.45,'(a)','FontSize',12,'FontName','Cambria')
text(0,.4,{'made by MATLAB';'follow slandarer'},'FontSize',12,'FontName','Cambria')

% 简单修饰坐标区域2
ax2=axes(gcf,'Position',[0.54,0.54,0.44,0.44]);hold on
ax2.XLim=[-8,12];
ax2.YLim=[-.1,.5];
ax2.XTickLabel='';
ax2.YTickLabel='';
ax2.Box='on';
ax2.LineWidth=.8;
ax2.FontName='Cambria';
% 绘制渐变面积图
areah(x,y2,'Color',[132,158,119]./255,'LineWidth',1);
areah(x,y4,'Color',[150,60,59]./255,'LineWidth',1);
areah(x,y5,'Color',[242,199,60]./255,'LineWidth',1);
text(-7,.45,'(b)','FontSize',12,'FontName','Cambria')

% 简单修饰坐标区域3
ax3=axes(gcf,'Position',[0.1,0.1,0.44,0.44]);hold on
ax3.XLim=[-8,12];
ax3.YLim=[-.05,.3];
ax3.Box='on';
ax3.LineWidth=.8;
ax3.FontName='Cambria';
ax3.XLabel.String='XXXXX1';
ax3.YLabel.String='YYYYY2';
% 绘制渐变面积图
areah(x,y1,'Color',[150,60,59]./255,'LineWidth',1);
areah(x,y2,'Color',[74,156,167]./255,'LineWidth',1);
areah(x,y3,'Color',[132,158,119]./255,'LineWidth',1);
text(-7,.25,'(c)','FontSize',12,'FontName','Cambria')
annotation('textarrow',[.35,.3],[.4,.35],'String','noting to write','FontSize',12,'FontName','Cambria')

% 简单修饰坐标区域4
ax4=axes(gcf,'Position',[0.54,0.1,0.44,0.44]);hold on
ax4.XLim=[-8,12];
ax4.YLim=[-.05,.3];
ax4.YTickLabel='';
ax4.Box='on';
ax4.LineWidth=.8;
ax4.FontName='Cambria';
ax4.XLabel.String='XXXXX2';
% 绘制渐变面积图
areah(x,y2,'Color',[132,158,119]./255,'LineWidth',1);
areah(x,y5,'Color',[242,199,60]./255,'LineWidth',1);
text(-7,.25,'(d)','FontSize',12,'FontName','Cambria')

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画


3.2 一个area函数使用实例

官网上其实咋用已经写的很清楚了(详见官网https://ww2.mathworks.cn/help/matlab/ref/area.html),这里给个画的比较好看的Pi可视化的案例:

% 获取pi前500位小数
Pi=getPi(500); 
% 计算比例变化
Ratio=cumsum(Pi==(0:9)',2);
Ratio=Ratio./sum(Ratio);
% 配色列表
CM=[231,98,84;239,138,71;247,170,88;255,208,111;255,230,183;
    170,220,224;114,188,213;82,143,173;55,103,149;30,70,110]./255;
% 绘制堆叠面积图
hold on
areaHdl=area(Ratio');
for i=1:10
    areaHdl(i).FaceColor=CM(i,:);
    areaHdl(i).FaceAlpha=.9;
end
% 图窗和坐标区域修饰
set(gcf,'Position',[200,100,720,420]);
ax=gca;
ax.YLim=[0,1];
ax.XMinorTick='on';
ax.YMinorTick='on';
ax.LineWidth=.8;
ax.FontName='Cambria';
ax.FontSize=11;
ax.TickDir='out';
ax.XLabel.String='Decimals';
ax.YLabel.String='Proportion';
ax.XLabel.FontSize=13;
ax.YLabel.FontSize=13;
ax.Title.String='Area Chart of Proportion — 500 digits';
ax.Title.FontSize=14;
% 绘制图例并修饰
lgdHdl=legend(num2cell('0123456789'));
lgdHdl.NumColumns=5;
lgdHdl.FontSize=11;
lgdHdl.Location='southeast';

function Pi=getPi(n)
if nargin<1,n=3;end
Pi=char(vpa(sym(pi),n+10));
Pi=abs(Pi)-48;
Pi=Pi(3:n+2);
end 

MATLAB | 这些各种各样的花里胡哨的折线填充图咋画文章来源地址https://www.toymoban.com/news/detail-415036.html


到了这里,关于MATLAB | 这些各种各样的花里胡哨的折线填充图咋画的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ef Core花里胡哨系列(10) 动态起来的 DbContext

    我们知道, DbContext 有两种托管方式,一种是 AddDbContext 和 AddDbContextFactory ,但是呢他们各有优劣,例如工厂模式下性能更好呀等等。那么,我们能否自己托管 DbContext 呢? Github Demo:动态起来的 DbContext 场景: 结合我们之前的文章 [Ef Core花里胡哨系列(5) 动态修改追踪的实体、

    2024年02月03日
    浏览(50)
  • 一款适合程序员的 Markdown 简历模版,拒绝花里胡哨

    一款适合 IT 行业的 Markdown 简约简历模版,拒绝花里胡哨 (1)安装 Markdown 编辑软件,推荐使用 Typora 编辑器(免费版 Typora 百度网盘下载点此下载)。 (2)下载本项目,修改 Resume.md 文件即可。 (3)将 style 文件夹下的所有的.css 复制到 Typora 的主题文件夹 (4)主题文件

    2024年02月06日
    浏览(54)
  • 如何在C语言中将文字显示为花里胡哨的多种颜色

            Hello大家好!最近刚刚做完C语言的课程设计。在评分标准中有一项是展示界面美观整洁。学前端的我对花里胡哨的界面情有独钟,这里为大家简单介绍三种改变字体颜色的方法。         注意:本文中所有演示截图均来自VS 2022。 目录  改变C语言显示界面字体

    2024年02月03日
    浏览(46)
  • Ef Core花里胡哨系列(5) 动态修改追踪的实体、动态查询

    同样还是 IModelCacheKeyFactory ,不过这次要采用主动刷新的方式。 动态实体,根据配置等生成动态类型来当作数据库实体使用,当配置修改时,可以调用 DynamicModelCacheKeyFactory.Refresh() 刷新DbContext。 动态构建部分不提供,我们将在其它的地方进行讨论。 我这里做了简化处理,直

    2024年02月03日
    浏览(38)
  • 【一步教学,一步到位】花里胡哨的3D翻页卡片,隔壁产品都馋哭

    with(cardShadowSizeFunc!!) { inParamMin = 0F inParamMax = 180F outParamMax = 50F outParamMin = 0F initValue = 10F } cardShadowDistanceFunc = CardShadowDistanceFunc() with(cardShadowDistanceFunc!!) { inParamMin = 0F inParamMax = 180F outParamMax = 50F outParamMin = 0F initValue = 10F } } 复制代码 2.5.3 阴影变化 为了更好地模拟3D效果,卡片阴影

    2024年04月14日
    浏览(42)
  • 【Linux】一些常见查看各种各样信息的命令

    find命令,用来查找文件。常用的按照名字查找-name,按照文件类型查找-type,linux常用的文件类型有七种,普通文件,目录文件,管道,套接字,软链接,块设备,字符设备。还可以按照文件大小查询-size。 grep命令,按照文件内容来查找。使用规则是grep option pattern file ps aux

    2024年02月09日
    浏览(57)
  • C++ 多线程编程(二) 各种各样的锁

      目录 前言 一、基本锁 1. 互斥锁(mutex) 2. 定时互斥锁(timed_mutex) 3. 条件变量 (condition_variable) 4. 读写锁 (shared_mutex) 5. 递归锁(recursive_mutex) 6. 自旋锁 (spinlock) 二、RAII锁 1. lock_guard 2. unique_lock 3. shared_lock 三、信号量 总结 多线程编程一个重要的问题就是数据竞争

    2024年02月15日
    浏览(51)
  • 在OLED上显示各种各样的数据(文字、字母、图片)

    今天来说一说OLED,也同时记录一下成果。 在学习OLED之前需要知道IIC协议,不了解的可以看(IIC协议相关_dxdlnu的博客-CSDN博客) 什么是OLED? OLED_百度百科 (baidu.com)   一.OLED写入指令和数据 因为OLED是有写入指令/数据的操作的,至于为什么有在后面编写程序的时候就能知道。

    2024年02月12日
    浏览(40)
  • 【ThreeJS基础教程-初识Threejs】1.6各种各样的几何体

    本段内容会写在0篇以外所有的,本人所编写的Threejs教程中 对,学习ThreeJS有捷径 当你有哪个函数不懂的时候,第一时间去翻一翻文档 当你有哪个效果不会做的时候,第一时间去翻一翻所有的案例,也许就能找到你想要的效果 最重要的一点,就是,绝对不要怕问问题,越怕找

    2024年02月08日
    浏览(48)
  • 前端 | (二)各种各样的常用标签 | 尚硅谷前端html+css零基础教程2023最新

    学习来源 :尚硅谷前端html+css零基础教程,2023最新前端开发html5+css3视频 系列笔记 : 【HTML4】(一)前端简介 【HTML4】(二)各种各样的常用标签 【HTML4】(三)表单及HTML4收尾 【CSS2】(四)CSS基础及CSS选择器 【CSS2】(五)CSS三大特性及常用属性 【CSS2】(六)CSS盒子模型

    2024年02月16日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包