zoukankan      html  css  js  c++  java
  • Color Map的生成方法

    /*
       Return a RGB colour value given a scalar v in the range [vmin,vmax]
       In this case each colour component ranges from 0 (no contribution) to
       1 (fully saturated), modifications for other ranges is trivial.
       The colour is clipped at the end of the scales if v is outside
       the range [vmin,vmax]
    */
    
    typedef struct {
        double r,g,b;
    } COLOUR;
    
    COLOUR GetColour(double v,double vmin,double vmax)
    {
       COLOUR c = {1.0,1.0,1.0}; // white
       double dv;
    
       if (v < vmin)
          v = vmin;
       if (v > vmax)
          v = vmax;
       dv = vmax - vmin;
    
       if (v < (vmin + 0.25 * dv)) {
          c.r = 0;
          c.g = 4 * (v - vmin) / dv;
       } else if (v < (vmin + 0.5 * dv)) {
          c.r = 0;
          c.b = 1 + 4 * (vmin + 0.25 * dv - v) / dv;
       } else if (v < (vmin + 0.75 * dv)) {
          c.r = 4 * (v - vmin - 0.5 * dv) / dv;
          c.b = 0;
       } else {
          c.g = 1 + 4 * (vmin + 0.75 * dv - v) / dv;
          c.b = 0;
       }
    
       return(c);
    }
    

    This produces to the following “hot-to-cold” color ramp:

    颜色表

    颜色表


    It basically represents a walk on the edges of the RGB color cube from blue to red (passing by cyan, green, yellow), and interpolating the values along this path.
    Note this is slightly different from the “Jet” colormap used in MATLAB, which as far as I can tell, goes through the following path:

    “Jet” colormap

    “hot-to-cold” color map

  • 相关阅读:
    随机生成4位验证码(包含数字, 字母)
    eval注册和登录
    51单片机中断机制(定时器/计数器)
    CS106B
    机器学习算法之旅(转载)
    Ubuntu系统使用记录
    2. 自然语言处理预备知识
    1. 自然语言处理描述
    前端学习网站
    2016年总结,2017年计划
  • 原文地址:https://www.cnblogs.com/naive/p/3568879.html
Copyright © 2011-2022 走看看