color_obj.c

来自「CA仿真模型中SLEUTH模型」· C语言 代码 · 共 434 行 · 第 1/2 页

C
434
字号
  color_table_deltatron_ptr->size = MAX_COLORS;  for (i = 0; i < scen_GetDeltatronColorCount (); i++)  {    color_val = scen_GetDeltatronColor (i);    color_table_deltatron_ptr->color[i].red = (color_val & RED_MASK) >> 16;    color_table_deltatron_ptr->color[i].green =      (color_val & GREEN_MASK) >> 8;    color_table_deltatron_ptr->color[i].blue = color_val & BLUE_MASK;  }  for (i = scen_GetDeltatronColorCount (); i < MAX_COLORS; i++)  {    color_table_deltatron_ptr->color[i].red = i;    color_table_deltatron_ptr->color[i].green = i;    color_table_deltatron_ptr->color[i].blue = i;  }  /*   *   * USER OVER RIDES   *   */  index = WATER_COLOR_INDEX;  color_val = scen_GetWaterColor ();  color_table_probability_ptr->color[index].red =    (color_val & RED_MASK) >> 16;  color_table_probability_ptr->color[index].green =    (color_val & GREEN_MASK) >> 8;  color_table_probability_ptr->color[index].blue = color_val & BLUE_MASK;color_table_landuse_ptr->color[index].red = (color_val & RED_MASK) >> 16;color_table_landuse_ptr->color[index].green = (color_val & GREEN_MASK) >> 8;color_table_landuse_ptr->color[index].blue = color_val & BLUE_MASK;  index = SEED_COLOR_INDEX;  color_val = scen_GetSeedColor ();  color_table_probability_ptr->color[index].red =    (color_val & RED_MASK) >> 16;  color_table_probability_ptr->color[index].green =    (color_val & GREEN_MASK) >> 8;  color_table_probability_ptr->color[index].blue = color_val & BLUE_MASK;  index = DATE_COLOR_INDEX;  color_val = scen_GetDateColor ();  color_table_probability_ptr->color[index].red =    (color_val & RED_MASK) >> 16;  color_table_probability_ptr->color[index].green =    (color_val & GREEN_MASK) >> 8;  color_table_probability_ptr->color[index].blue = color_val & BLUE_MASK;  for (i = 0; i < scen_GetProbabilityColorCount (); i++)  {    index = i + START_INDEX_FOR_PROBABILITY_COLORS;    color_val = scen_GetProbabilityColor (i);    color_table_probability_ptr->color[index].red =      (color_val & RED_MASK) >> 16;    color_table_probability_ptr->color[index].green =      (color_val & GREEN_MASK) >> 8;    color_table_probability_ptr->color[index].blue = color_val & BLUE_MASK;  }  strcpy (color_table_growth_ptr->name, "GROWTH_COLORMAP");  color_table_growth_ptr->size = MAX_COLORS;  for (i = 0; i < MAX_COLORS; i++)  {    color_table_growth_ptr->color[i].red = i;    color_table_growth_ptr->color[i].green = i;    color_table_growth_ptr->color[i].blue = i;  }  index = PHASE0G;  color_val = scen_GetPhase0GrowthColor ();  color_table_growth_ptr->color[index].red = (color_val & RED_MASK) >> 16;  color_table_growth_ptr->color[index].green = (color_val & GREEN_MASK) >> 8;  color_table_growth_ptr->color[index].blue = color_val & BLUE_MASK;  index = PHASE1G;  color_val = scen_GetPhase1GrowthColor ();  color_table_growth_ptr->color[index].red = (color_val & RED_MASK) >> 16;  color_table_growth_ptr->color[index].green = (color_val & GREEN_MASK) >> 8;  color_table_growth_ptr->color[index].blue = color_val & BLUE_MASK;  index = PHASE2G;  color_val = scen_GetPhase2GrowthColor ();  color_table_growth_ptr->color[index].red = (color_val & RED_MASK) >> 16;  color_table_growth_ptr->color[index].green = (color_val & GREEN_MASK) >> 8;  color_table_growth_ptr->color[index].blue = color_val & BLUE_MASK;  index = PHASE3G;  color_val = scen_GetPhase3GrowthColor ();  color_table_growth_ptr->color[index].red = (color_val & RED_MASK) >> 16;  color_table_growth_ptr->color[index].green = (color_val & GREEN_MASK) >> 8;  color_table_growth_ptr->color[index].blue = color_val & BLUE_MASK;  index = PHASE4G;  color_val = scen_GetPhase4GrowthColor ();  color_table_growth_ptr->color[index].red = (color_val & RED_MASK) >> 16;  color_table_growth_ptr->color[index].green = (color_val & GREEN_MASK) >> 8;  color_table_growth_ptr->color[index].blue = color_val & BLUE_MASK;  index = PHASE5G;  color_val = scen_GetPhase5GrowthColor ();  color_table_growth_ptr->color[index].red = (color_val & RED_MASK) >> 16;  color_table_growth_ptr->color[index].green = (color_val & GREEN_MASK) >> 8;  color_table_growth_ptr->color[index].blue = color_val & BLUE_MASK;}/*************************************************************************************************************************************************************** FUNCTION NAME: color_LogIt** PURPOSE:       logs the colortable values on file descriptor fp** AUTHOR:        Keith Clarke** PROGRAMMER:    Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/void  color_LogIt (FILE * fp){  int i;  int color_val;  char zeroes[] = "000000";  char color_str[6];  char hex_str[6];  fprintf (fp,      "\n*********************LOGGING COLORTABLES*****************\n\n");  fprintf (fp, "COLORMAP: %s\n", color_table_landuse_ptr->name);  for (i = 0; i < color_table_landuse_ptr->size; i++)  {    color_val = color_table_landuse_ptr->color[i].red * 256 * 256 +      color_table_landuse_ptr->color[i].green * 256 +      color_table_landuse_ptr->color[i].blue;    sprintf (color_str, "%X", color_val);    strcpy (hex_str, zeroes);    strcpy (hex_str + 6 - strlen (color_str), color_str);    fprintf (fp, "%3u %3u %3u %3u = %s\n", i,             color_table_landuse_ptr->color[i].red,             color_table_landuse_ptr->color[i].green,             color_table_landuse_ptr->color[i].blue,             hex_str);  }  fprintf (fp, "COLORMAP: %s\n", color_table_probability_ptr->name);  for (i = 0; i < color_table_probability_ptr->size; i++)  {    color_val = color_table_probability_ptr->color[i].red * 256 * 256 +      color_table_probability_ptr->color[i].green * 256 +      color_table_probability_ptr->color[i].blue;    sprintf (color_str, "%X", color_val);    strcpy (hex_str, zeroes);    strcpy (hex_str + 6 - strlen (color_str), color_str);    fprintf (fp, "%3u %3u %3u %3u = %s\n", i,             color_table_probability_ptr->color[i].red,             color_table_probability_ptr->color[i].green,             color_table_probability_ptr->color[i].blue,             hex_str);  }  fprintf (fp, "COLORMAP: %s\n", color_table_growth_ptr->name);  for (i = 0; i < color_table_growth_ptr->size; i++)  {    color_val = color_table_growth_ptr->color[i].red * 256 * 256 +      color_table_growth_ptr->color[i].green * 256 +      color_table_growth_ptr->color[i].blue;    sprintf (color_str, "%X", color_val);    strcpy (hex_str, zeroes);    strcpy (hex_str + 6 - strlen (color_str), color_str);    fprintf (fp, "%3u %3u %3u %3u = %s\n", i,             color_table_growth_ptr->color[i].red,             color_table_growth_ptr->color[i].green,             color_table_growth_ptr->color[i].blue,             hex_str);  }  fprintf (fp, "COLORMAP: %s\n", color_table_grayscale_ptr->name);  for (i = 0; i < color_table_grayscale_ptr->size; i++)  {    color_val = color_table_grayscale_ptr->color[i].red * 256 * 256 +      color_table_grayscale_ptr->color[i].green * 256 +      color_table_grayscale_ptr->color[i].blue;    sprintf (color_str, "%X", color_val);    strcpy (hex_str, zeroes);    strcpy (hex_str + 6 - strlen (color_str), color_str);    fprintf (fp, "%3u %3u %3u %3u = %s\n", i,             color_table_grayscale_ptr->color[i].red,             color_table_grayscale_ptr->color[i].green,             color_table_grayscale_ptr->color[i].blue,             hex_str);  }  fflush (fp);}/*************************************************************************************************************************************************************** FUNCTION NAME: color_MemoryLog** PURPOSE:       log the memory locations on file descriptor fp** AUTHOR:        Keith Clarke** PROGRAMMER:    Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/void  color_MemoryLog (FILE * fp){  char func[] = "color_MemoryLog";  if (!initialized)  {    sprintf (msg_buf, "color_Init() has not been called yet");    LOG_ERROR (msg_buf);    EXIT (1);  }  LOG_MEM (fp, color_table_landuse_ptr, sizeof (struct colortable), 1);  LOG_MEM (fp, color_table_probability_ptr, sizeof (struct colortable), 1);  LOG_MEM (fp, color_table_growth_ptr, sizeof (struct colortable), 1);  LOG_MEM (fp, color_table_deltatron_ptr, sizeof (struct colortable), 1);  LOG_MEM (fp, color_table_grayscale_ptr, sizeof (struct colortable), 1);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?