Example #1
0
        public static Color ColorBar(double x, double xmax, double xmin, ColorBarType bartype)
        {
            int    red = 0;
            int    green = 0;
            int    blue = 0;
            double y, h, s, v, r, g, b;

            y = (x - xmin) / (xmax - xmin);
            switch (bartype)
            {
            case ColorBarType.apricot:
                red   = oport_colorbar_apricot_red(y);
                green = oport_colorbar_apricot_green(y);
                blue  = oport_colorbar_apricot_blue(y);
                break;

            case ColorBarType.carnation:
                red   = oport_colorbar_carnation_red(y);
                green = oport_colorbar_carnation_green(y);
                blue  = oport_colorbar_carnation_blue(y);
                break;

            case ColorBarType.ether:
                red   = oport_colorbar_ether_red(y);
                green = oport_colorbar_ether_green(y);
                blue  = oport_colorbar_ether_blue(y);
                break;

            case ColorBarType.grayscale_banded:
                red   = oport_colorbar_grayscale_banded_rgb(y);
                green = red;
                blue  = red;
                break;

            case ColorBarType.hot_metal:
                red   = (int)oport_colorbar_hotmetal_red(y);
                green = (int)oport_colorbar_hotmetal_green(y);
                blue  = (int)oport_colorbar_hotmetal_blue(y);
                break;

            case ColorBarType.lava_waves:
                red   = oport_colorbar_lava_waves_red(y);
                green = oport_colorbar_lava_waves_green(y);
                blue  = oport_colorbar_lava_waves_blue(y);
                break;

            case ColorBarType.malachite:
                red   = oport_colorbar_malachite_red(y);
                green = oport_colorbar_malachite_green(y);
                blue  = oport_colorbar_malachite_blue(y);
                break;

            case ColorBarType.morning_glory:
                red   = oport_colorbar_morning_glory_red(y);
                green = oport_colorbar_morning_glory_green(y);
                blue  = oport_colorbar_morning_glory_blue(y);
                break;

            case ColorBarType.peanut_butter_and_jerry:
                red   = oport_colorbar_peanut_butter_and_jerry_red(y);
                green = oport_colorbar_peanut_butter_and_jerry_green(y);
                blue  = oport_colorbar_peanut_butter_and_jerry_blue(y);
                break;

            case ColorBarType.purple_haze:
                red   = oport_colorbar_purple_haze_red(y);
                green = oport_colorbar_purple_haze_green(y);
                blue  = oport_colorbar_purple_haze_blue(y);
                break;

            case ColorBarType.rainbow:
                red   = (int)oport_colorbar_rainbow_red(y);
                green = (int)oport_colorbar_rainbow_green(y);
                blue  = (int)oport_colorbar_rainbow_blue(y);
                break;

            case ColorBarType.rainbow_banded:
                if (y < 0.0)
                {
                    red   = 44;
                    green = 6;
                    blue  = 65;
                }
                else if (y <= 1.0)
                {
                    h = oport_colorbar_rainbow_banded_h(y);
                    s = oport_colorbar_rainbow_banded_s(y);
                    v = oport_colorbar_rainbow_banded_v(y);
                    Util.HsvToRgb(h, s, v, out r, out g, out b);
                    red   = (int)(r * 255.0);
                    green = (int)(g * 255.0);
                    blue  = (int)(b * 255.0);
                }
                else
                {
                    red   = 167;
                    green = 18;
                    blue  = 15;
                }
                break;

            case ColorBarType.rainbow_striped:
                if (y < 0.0)
                {
                    red   = 150;
                    green = 0;
                    blue  = 144;
                }
                else if (y <= 1.0)
                {
                    h = oport_colorbar_rainbow_striped_h(y);
                    s = oport_colorbar_rainbow_striped_s(y);
                    v = oport_colorbar_rainbow_striped_v(y);
                    Util.HsvToRgb(h, s, v, out r, out g, out b);
                    red   = (int)(r * 255.0);
                    green = (int)(g * 255.0);
                    blue  = (int)(b * 255.0);
                }
                else
                {
                    red   = 255;
                    green = 0;
                    blue  = 0;
                }
                break;

            case ColorBarType.rose:
                red   = oport_colorbar_rose_red(y);
                green = oport_colorbar_rose_green(y);
                blue  = oport_colorbar_rose_blue(y);
                break;

            case ColorBarType.saturn:
                red   = oport_colorbar_saturn_red(y);
                green = oport_colorbar_saturn_green(y);
                blue  = oport_colorbar_saturn_blue(y);
                break;

            case ColorBarType.seismic:
                red   = oport_colorbar_seismic_red(y);
                green = oport_colorbar_seismic_green(y);
                blue  = oport_colorbar_seismic_blue(y);
                break;

            case ColorBarType.space:
                red   = oport_colorbar_space_red(y);
                green = oport_colorbar_space_green(y);
                blue  = oport_colorbar_space_blue(y);
                break;

            case ColorBarType.supernova:
                red   = oport_colorbar_supernova_red(y);
                green = oport_colorbar_supernova_green(y);
                blue  = oport_colorbar_supernova_blue(y);
                break;

            case ColorBarType.cyclic:
                blue  = (int)(100.0 * Math.Cos(OPORT_OP_PI2 * (y + 2.0 / 3.0))) + 100;
                green = (int)(100.0 * Math.Cos(OPORT_OP_PI2 * (y + 1.0 / 3.0))) + 100;
                red   = (int)(100.0 * Math.Cos(OPORT_OP_PI2 * y)) + 100;
                break;

            case ColorBarType.rflow_rainbow:
                red   = oport_colorbar_rflow_rainbow_red(y);
                green = oport_colorbar_rflow_rainbow_green(y);
                blue  = oport_colorbar_rflow_rainbow_blue(y);
                break;
            }
            return(Color.FromArgb(red, green, blue));
        }
Example #2
0
 public static Color ColorBar( double x, double xmax, double xmin, ColorBarType bartype ) {
     int red = 0;
     int green = 0;
     int blue = 0;
     double y, h, s, v, r, g, b;
     y = (x - xmin) / (xmax - xmin);
     switch ( bartype ) {
         case ColorBarType.apricot:
             red = oport_colorbar_apricot_red( y );
             green = oport_colorbar_apricot_green( y );
             blue = oport_colorbar_apricot_blue( y );
             break;
         case ColorBarType.carnation:
             red = oport_colorbar_carnation_red( y );
             green = oport_colorbar_carnation_green( y );
             blue = oport_colorbar_carnation_blue( y );
             break;
         case ColorBarType.ether:
             red = oport_colorbar_ether_red( y );
             green = oport_colorbar_ether_green( y );
             blue = oport_colorbar_ether_blue( y );
             break;
         case ColorBarType.grayscale_banded:
             red = oport_colorbar_grayscale_banded_rgb( y );
             green = red;
             blue = red;
             break;
         case ColorBarType.hot_metal:
             red = (int)oport_colorbar_hotmetal_red( y );
             green = (int)oport_colorbar_hotmetal_green( y );
             blue = (int)oport_colorbar_hotmetal_blue( y );
             break;
         case ColorBarType.lava_waves:
             red = oport_colorbar_lava_waves_red( y );
             green = oport_colorbar_lava_waves_green( y );
             blue = oport_colorbar_lava_waves_blue( y );
             break;
         case ColorBarType.malachite:
             red = oport_colorbar_malachite_red( y );
             green = oport_colorbar_malachite_green( y );
             blue = oport_colorbar_malachite_blue( y );
             break;
         case ColorBarType.morning_glory:
             red = oport_colorbar_morning_glory_red( y );
             green = oport_colorbar_morning_glory_green( y );
             blue = oport_colorbar_morning_glory_blue( y );
             break;
         case ColorBarType.peanut_butter_and_jerry:
             red = oport_colorbar_peanut_butter_and_jerry_red( y );
             green = oport_colorbar_peanut_butter_and_jerry_green( y );
             blue = oport_colorbar_peanut_butter_and_jerry_blue( y );
             break;
         case ColorBarType.purple_haze:
             red = oport_colorbar_purple_haze_red( y );
             green = oport_colorbar_purple_haze_green( y );
             blue = oport_colorbar_purple_haze_blue( y );
             break;
         case ColorBarType.rainbow:
             red = (int)oport_colorbar_rainbow_red( y );
             green = (int)oport_colorbar_rainbow_green( y );
             blue = (int)oport_colorbar_rainbow_blue( y );
             break;
         case ColorBarType.rainbow_banded:
             if ( y < 0.0 ) {
                 red = 44;
                 green = 6;
                 blue = 65;
             } else if ( y <= 1.0 ) {
                 h = oport_colorbar_rainbow_banded_h( y );
                 s = oport_colorbar_rainbow_banded_s( y );
                 v = oport_colorbar_rainbow_banded_v( y );
                 Util.HsvToRgb( h, s, v, out r, out g, out b );
                 red = (int)(r * 255.0);
                 green = (int)(g * 255.0);
                 blue = (int)(b * 255.0);
             } else {
                 red = 167;
                 green = 18;
                 blue = 15;
             }
             break;
         case ColorBarType.rainbow_striped:
             if ( y < 0.0 ) {
                 red = 150;
                 green = 0;
                 blue = 144;
             } else if ( y <= 1.0 ) {
                 h = oport_colorbar_rainbow_striped_h( y );
                 s = oport_colorbar_rainbow_striped_s( y );
                 v = oport_colorbar_rainbow_striped_v( y );
                 Util.HsvToRgb( h, s, v, out r, out g, out  b );
                 red = (int)(r * 255.0);
                 green = (int)(g * 255.0);
                 blue = (int)(b * 255.0);
             } else {
                 red = 255;
                 green = 0;
                 blue = 0;
             }
             break;
         case ColorBarType.rose:
             red = oport_colorbar_rose_red( y );
             green = oport_colorbar_rose_green( y );
             blue = oport_colorbar_rose_blue( y );
             break;
         case ColorBarType.saturn:
             red = oport_colorbar_saturn_red( y );
             green = oport_colorbar_saturn_green( y );
             blue = oport_colorbar_saturn_blue( y );
             break;
         case ColorBarType.seismic:
             red = oport_colorbar_seismic_red( y );
             green = oport_colorbar_seismic_green( y );
             blue = oport_colorbar_seismic_blue( y );
             break;
         case ColorBarType.space:
             red = oport_colorbar_space_red( y );
             green = oport_colorbar_space_green( y );
             blue = oport_colorbar_space_blue( y );
             break;
         case ColorBarType.supernova:
             red = oport_colorbar_supernova_red( y );
             green = oport_colorbar_supernova_green( y );
             blue = oport_colorbar_supernova_blue( y );
             break;
         case ColorBarType.cyclic:
             blue = (int)(100.0 * Math.Cos( OPORT_OP_PI2 * (y + 2.0 / 3.0) )) + 100;
             green = (int)(100.0 * Math.Cos( OPORT_OP_PI2 * (y + 1.0 / 3.0) )) + 100;
             red = (int)(100.0 * Math.Cos( OPORT_OP_PI2 * y )) + 100;
             break;
         case ColorBarType.rflow_rainbow:
             red = oport_colorbar_rflow_rainbow_red( y );
             green = oport_colorbar_rflow_rainbow_green( y );
             blue = oport_colorbar_rflow_rainbow_blue( y );
             break;
     }
     return Color.FromArgb( red, green, blue );
 }