suivant: L'itérateur
monter: Inversion de table de
précédent: Constructeur
  Table des matières
  Index
Il s'agit d'une recherche dichotomique classique. Il faut simplement
faire attention à la multiplication par 3 des indices pour retomber
toujours sur la première composante. De plus, lorsque l'intervalle
est réduit à 1, on renvoie l'indice le plus proche de la
valeur d'entrée.
int colormap::give_entry(unsigned char value)
{
int min(0),max(nb_color);
int midle=(min+max)/2;
while (max-min>1)
{
if(tab[3*midle]==value)
return midle;
if(tab[3*midle] > value)
max=midle;
else
min=midle;
midle=(min+max)/2;
}
if(value-tab[3*min] < tab[3*max]-value)
return min;
else
return max;
}
Brun Luc
2004-03-25