home *** CD-ROM | disk | FTP | other *** search
/ Graphics Programming Black Book (Special Edition) / BlackBook.bin / disk1 / source / chapter57 / xsharp21.exe / GAMMA / GAMMA.C next >
Text File  |  1992-04-04  |  825b  |  34 lines

  1. /* Calculates gamma corrected settings for n intensity selection bits given m
  2.    palette bits. */
  3.  
  4. #include <stdio.h>
  5. #include <math.h>
  6. #include <conio.h>
  7. #include <stdlib.h>
  8.  
  9. #define GAMMA  2.3
  10.  
  11. void main() {
  12.     double intensity,x;
  13.     int i;
  14.     int selbits, palbits;
  15.     int sellevels, pallevels;
  16.  
  17.     printf("# of selection bits (eg., 3 if 8 intensity levels desired):");
  18.     scanf("%d", &selbits);
  19.     printf("# of palette bits (eg., 6 if 64 palette entries):");
  20.     scanf("%d", &palbits);
  21.    sellevels = 1;
  22.    while (selbits--) { sellevels *= 2; };
  23.    sellevels--;
  24.    pallevels = 1;
  25.    while (palbits--) { pallevels *= 2; };
  26.    pallevels--;
  27.  
  28.     printf("0\n");
  29.     for (i=1; i<=sellevels; i++) {
  30.         intensity = (double)i/(double)sellevels;
  31.         printf("%d\n", (int)((pow(intensity, 1.0/GAMMA)*pallevels) + 0.5));
  32.     }
  33. }
  34.