ColorMap в WPF - PullRequest
       38

ColorMap в WPF

0 голосов
/ 27 ноября 2018

Я имею дело с имитатором дозвукового сопла, и у меня проблемы, потому что я хочу рисовать разные части сопла в зависимости от значения, полученного в функции.Я не имею никакой идеи реализовать ColorMap, поэтому я сделал функцию, которая возвращает 10 цветов для диапазона значений.

Ниже приведен код, который я использовал, но я хочу изменить этот код на код ColorMap.

ЭТО ФУНКЦИЯ, КОТОРАЯ ВОЗВРАЩАЕТ ЦВЕТ

открытая строка ColorCeldaMach (doubleMach) {

        if (Mach > 1.05)
            color = "Black";
        if (Mach <= 1.05 && Mach > 1.00875)
            color = "Firebrick";
        if (Mach <= 1.00875 && Mach > 0.9675)
            color = "Red";
        if (Mach <= 0.9675 && Mach > 0.92625)
            color = "Orange";
        if (Mach <= 0.92625 && Mach > 0.885)
            color = "Yellow";
        if (Mach <= 0.885 && Mach > 0.84375)
            color = "Green";
        if (Mach <= 0.84375 && Mach > 0.8025)
            color = "Cyan";
        if (Mach <= 0.8025 && Mach > 0.76125)
            color = "Blue";
        if (Mach <= 0.76125 && Mach > 0.72)
            color = "Purple";
        if (Mach <= 0.72 && Mach > 0)
            color = "Indigo";

        return this.color;

    }

И ЭТО КОД В ГЛАВНОМ ОКНЕ:

            for (int j = 0; j < columns; j++)
            {
                System.Windows.Controls.Label lbl = new System.Windows.Controls.Label();
                lbl.Height = Areas[j] * 30;
                lbl.Width = rejilla.Width / columns;

                // Este tag nos permitira identificar la celda cuando cliquemos en ella
                lbl.Tag = new Point(1, j); //Para poder identificarlo posteriormente

                // Definimos las caracteristicas del borde de la celda
                lbl.BorderBrush = new SolidColorBrush(Colors.Gray);
                lbl.BorderThickness = new Thickness(1);
                lbl.Background = (Brush)new BrushConverter().ConvertFromString(nozzleQ1D.ColorCeldaDensidad(Density[j]));

                // Añadimos la etiqueta a la fila
                stkPanel.Children.Add(lbl);
            }

            // Añadimos la fila a la rejilla
            rejilla.Children.Add(stkPanel);
...