Matlab 如何绘制等边颜色三角形?

Matlab 如何绘制等边颜色三角形?,matlab,plot,matlab-figure,triangulation,delaunay,Matlab,Plot,Matlab Figure,Triangulation,Delaunay,我想在MATLAB中绘制一个类似于此图的彩色图: 我已经设法创建了创建顶点所需的所有点[x,y],并且我有一个带有每个顶点颜色的贴图,所以我可以得到以下结果 但我不知道如何使轴工作 迄今为止的代码: %等边网格 tcorner=[0.0,0.5,1.0; 0.0,1.0*sqrt(3)/2,0.0]; tg=三角形网格(1/0.05,t角); tgx=tg(1,:); tgy=tg(2,:); %创建三角形 tri=delaunay(tgx,tgy); %密谋 h=trisurf(tri,t

我想在MATLAB中绘制一个类似于此图的彩色图:

我已经设法创建了创建顶点所需的所有点[x,y],并且我有一个带有每个顶点颜色的贴图,所以我可以得到以下结果

但我不知道如何使轴工作

迄今为止的代码:

%等边网格
tcorner=[0.0,0.5,1.0;
0.0,1.0*sqrt(3)/2,0.0];
tg=三角形网格(1/0.05,t角);
tgx=tg(1,:);
tgy=tg(2,:);
%创建三角形
tri=delaunay(tgx,tgy);
%密谋
h=trisurf(tri,tgx,tgy,色向量);
以及网格函数:

功能三角网格(n,t角)
ng=((n+1)*(n+2))/2;
tg=零(2,ng);
p=0;
对于i=0:n
对于j=0:n-i
k=n-i-j;
p=p+1;
tg(1:2,p)=(i*t(1:2,1)+j*t(1:2,2)+k*t(1:2,3))/n;
结束
结束
结束

主要问题是无法将轴旋转到正确的位置,因为轴始终翻转到下侧。因此,您需要创建它们

以下是如何:

% Equilateral grid 
tcorner = [0.0, 0.5, 1.0; % x
           0.0, 1.0*sqrt(3)/2,   0.0]; % y
tg = triangle_grid( 1/0.05, tcorner);
tgx = tg(1,:);
tgy = tg(2,:);

% Create triangles
tri = delaunay(tgx,tgy);
col = rand(size(tgx));
trisurf(tri,tgx,tgy,col)
view(0,90)
colormap('lines')

% setting the axes:
ax = gca;
grid off
ax.YAxis.Visible = 'off';
ticks = (0:20:80).';

% bottom axis:
tickpos = linspace(tcorner(1,1),tcorner(1,3),numel(ticks)+1);
ax.XAxis.FontSize = 14;
ax.XAxis.TickValues = tickpos(1:end-1);
ax.XAxis.TickLabels = ticks;
ax.XAxis.TickLabelRotation = 45;
xlabel('X axis title');

% left & right axis:
ticksxpos = linspace(tcorner(1,1),tcorner(1,3),numel(ticks)*2+1);
ticksypos = linspace(tcorner(2,1),tcorner(2,2),numel(ticks)+1);
text(ticksxpos(numel(ticks)+1:-1:2)-0.03,... % left
    ticksypos(end:-1:2)+0.03,...
    num2str(ticks),'FontSize',14,...
    'VerticalAlignment','bottom',...
    'HorizontalAlignment','left',...
    'Rotation',-45)
text(ticksxpos(end:-1:numel(ticks)+2)+0.05,... % right
    ticksypos(1:end-1)-0.03,...
    num2str(ticks),'FontSize',14,...
    'VerticalAlignment','bottom',...
    'HorizontalAlignment','right')
ax.Parent.Color = 'w';

% titles:
text(tcorner(1,2)/2-0.06,tcorner(2,2)/2+0.06,...
    'Left title','FontSize',14,...
    'HorizontalAlignment','center',...
    'Rotation',45)
text(tcorner(1,2)+tcorner(1,2)/2+0.06,tcorner(2,2)/2+0.06,...
    'Right title','FontSize',14,...
    'HorizontalAlignment','center',...
    'Rotation',-45)
我们得到


好问题!请你把你目前拥有的东西的代码贴出来好吗?@Acrobe,你可以用代码:)而且你只想画一个漂亮的对角线轴,或者你在画什么上也有问题?这只涉及到轴。我可以控制应该绘制的数据。