00001 #include "fullLinear.h" 00002 #include <cmath> 00003 00004 fullLinear::fullLinear(int nbColors):colorMaker(nbColors){ 00005 } 00006 00007 fullLinear::~fullLinear(){ 00008 } 00009 00010 // level va de 0 à 999 00011 QColor fullLinear::get(int level){ 00012 int red, green, blue; 00013 00014 //float ii = sqrt(sqrt(float(level)/nblevels)) * nblevels; 00015 int ii = level; 00016 00017 // rouge 00018 if (ii < nblevels/4) 00019 red = 0; 00020 else if (ii < nblevels /2) 00021 red = -255 + 4*ii*255/nblevels; 00022 else 00023 red = 255; 00024 00025 // vert 00026 if (ii< nblevels/2) 00027 green = 0; 00028 else if (ii < 3*nblevels/4) 00029 green = -511 + 4*ii*255/nblevels; 00030 else 00031 green = 255; 00032 00033 // bleu 00034 if (ii< nblevels/4) 00035 blue = 4*255*ii/nblevels; 00036 else if (ii < nblevels/2) 00037 blue = 511 - 4*ii*255/nblevels; 00038 else if (ii < 3*nblevels/4) 00039 blue = 0; 00040 else 00041 blue = -767 + 4*ii*255/nblevels; 00042 00043 return QColor(red, green, blue); 00044 }