在3d绘图matlab上填充形状内的颜色

时间:2017-01-17 07:11:26

标签: matlab plot matlab-figure

我在matlab中创建了一个看起来像这样的形状 Shape image

npts = 14;
z = linspace(-1,1,npts);
omz = sqrt(1-z.^2);

xyz=[2 3 1 0.5 2 5 10 15 20 29 32 34  10 2;1 3 8 12 20 25 27 25 23 26  26 23   5 1;z];
plot3(xyz(1,:),xyz(2,:),xyz(3,:),'ro','LineWidth',2);

box on
hold on
fnplt(cscvn(xyz(:,[1:end 1])),'r',2)
hold off

我需要在这个形状中填充不同的颜色。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

  1. 获取fnplt
  2. 的输出
  3. 将色彩映射更改为gray
  4. 使用fill3为补丁着色。
  5. 所有在一起:

    c = fnplt(cscvn(xyz(:,[1:end 1])),'r',2);
    colormap gray
    fill3(c(1,:),c(2,:),c(3,:),1:size(c,2))
    

    结果:

    3D_patch_color