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)); }
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 ); }