00001 #include <time.h>
00002 #include <stdio.h>
00003 #include <stdlib.h>
00004 #include <grass/gis.h>
00005
00006 #define MAX_COLORS 1024
00007 #define DEVIATION 128
00008
00009
00022 int G_make_random_colors(struct Colors *colors, CELL min, CELL max)
00023 {
00024 unsigned char red, grn, blu;
00025 int count;
00026 CELL n;
00027
00028 G_init_colors(colors);
00029 if (min > max)
00030 return -1;
00031
00032 srand(time(NULL));
00033
00034 count = MAX_COLORS - DEVIATION + rand() % DEVIATION;
00035 if (count > max - min + 1)
00036 count = max - min + 1;
00037
00038 for (n = 1; n <= count; n++) {
00039 red = rand() & 0377;
00040 grn = rand() & 0377;
00041 blu = rand() & 0377;
00042 G_add_modular_color_rule(n, red, grn, blu, n, red, grn, blu, colors);
00043 }
00044 G_set_color_range(min, max, colors);
00045
00046 return 1;
00047 }