代码之家  ›  专栏  ›  技术社区  ›  shamalaia

模糊颜色贴图的一部分

  •  2
  • shamalaia  · 技术社区  · 9 年前

    clc
    clear all
    
    [x, y, z] = peaks(1000);
    
    figure;
    p = surf(x,y,z);
    shading flat
    
    cm=colormap;
    
    Xm=-7;
    XM=8;
    caxis([Xm XM])
    
    colorbar
    

    from

    [Xm XM]

    [x, y, z] = peaks(1000);
    
    figure;
    p = surf(x,y,z);
    shading flat
    
    cm=colormap;
    
    Xm=-7;
    XM=8;
    caxis([Xm XM])
    
    x1=2;
    x2=4;
    l1=findnearest(x1,linspace(Xm,XM,length(cm)));
    l2=findnearest(x2,linspace(Xm,XM,length(cm)));
    
    cm(l1:l2,:)=repmat([1 0 0],l2-l1+1,1);
    
    colormap(cm)
    colorbar
    

    to

    编辑:

    findnearest

    1 回复  |  直到 9 年前
        1
  •  3
  •   m7913d    9 年前

    如果中间的颜色不重要,可以使用一些简单的线性褪色:

    n = floor((l2-l1+1)/2);
    fade = linspace(0, 1, n)';
    cm(l1+n,:) = [1 0 0];
    cm(l1:l1+n-1,:)=fade * [1 0 0] + (1-fade) * cm(l1-1, :);
    cm(l2:-1:l2-n+1,:)=fade * [1 0 0] + (1-fade) * cm(l2+1, :);
    

    enter image description here