Пример #1
0
        /// <summary>
        /// Returning a brush based on a value
        /// </summary>
        /// <param name="z">Actual value</param>
        /// <param name="zmin">Minimum</param>
        /// <param name="zmax">Maximum</param>
        /// <param name="cm">A colormap object</param>
        /// <returns></returns>
        public static SolidColorBrush GetBrush(double z, double zmin, double zmax, ColormapBrush cm, double opacity = 1)
        {
            SolidColorBrush brush = new SolidColorBrush();

            int colorIndex = (int)(((cm.Ydivisions - 1) * (z - zmin) + zmax - z) / (zmax - zmin));

            if (colorIndex < 0)
            {
                colorIndex = 0;
            }

            if (colorIndex >= cm.Ydivisions)
            {
                colorIndex = cm.Ydivisions - 1;
            }

            if (cm.ColormapBrushes == null || cm.ColormapBrushes.Count == 0)
            {
                cm.CalculateColormapBrushes(opacity);
            }

            brush = (SolidColorBrush)cm.ColormapBrushes[colorIndex].Brush;

            brush.Freeze();

            return(brush);
        }