Esempio n. 1
0
        private void btnDrawR_Click(object sender, EventArgs e)
        {
            var bounds = Geomap.GetBounds();

            var g = pnlMap.CreateGraphics();

            g.Clear(Color.White);

            var rd = new Random();

            var minStatValue = RegionValues.Values.Min(rv => rv.Value);
            var maxStatValue = RegionValues.Values.Max(rv => rv.Value);
            var statGradient = (maxStatValue - minStatValue) / 255;

            var scale   = float.Parse(txtScale.Text);
            var offsetX = float.Parse(txtOffsetX.Text);
            var offsetY = float.Parse(txtOffsetY.Text);

            var features = Geomap.Features;

            foreach (Feature f in features)
            {
                var statvalue = 0f;
                if (RegionValues.ContainsKey(f.SectorID))
                {
                    statvalue = RegionValues[f.SectorID].Value;
                }

                var red       = 0;
                var green     = 0;
                var blue      = 0;
                var fillValue = (statvalue - minStatValue) / statGradient;

                HsvToRgb(180 + fillValue / 255 * 360, 1, 1, out red, out green, out blue);



                var polys = f.Geometry.ScaleAndFlipCoordinates(scale, offsetX, offsetY, bounds.Bottom);
                foreach (var poly in polys)
                {
                    var brush = new SolidBrush(Color.FromArgb(red, green, blue));
                    g.FillPolygon(brush, poly);
                }
            }
        }
Esempio n. 2
0
        void PaintRGB(Graphics g)
        {
            var bounds = Geomap.GetBounds();

            //var g = pnlMap.CreateGraphics();
            g.Clear(Color.White);

            var rd = new Random();

            var minStatValue = RegionValues.Values.Min(rv => rv.Value);
            var maxStatValue = RegionValues.Values.Max(rv => rv.Value);
            var statGradient = (maxStatValue - minStatValue) / 255;

            var scale   = float.Parse(txtScale.Text);
            var offsetX = float.Parse(txtOffsetX.Text);
            var offsetY = float.Parse(txtOffsetY.Text);

            var features = Geomap.Features;

            foreach (Feature f in features)
            {
                var statvalue = 0f;
                if (RegionValues.ContainsKey(f.SectorID))
                {
                    statvalue = RegionValues[f.SectorID].Value;
                }

                var red   = (int)statvalue % 256;
                var green = (int)((statvalue % 65536) / 256);
                var blue  = (int)(statvalue / 65536);

                var fillValue = (statvalue - minStatValue) / statGradient;

                var polys = f.Geometry.ScaleAndFlipCoordinates(scale, offsetX, offsetY, bounds.Bottom);
                foreach (var poly in polys)
                {
                    var brush = new SolidBrush(Color.FromArgb(red, green, blue));
                    g.FillPolygon(brush, poly);
                }
            }
        }
Esempio n. 3
0
        private void btnDrawBasic_Click(object sender, EventArgs e)
        {
            var bounds = Geomap.GetBounds();

            var g = pnlMap.CreateGraphics();

            g.Clear(Color.White);
            var rd = new Random();

            var features = Geomap.Features;
            var scale    = float.Parse(txtScale.Text);
            var offsetX  = float.Parse(txtOffsetX.Text);
            var offsetY  = float.Parse(txtOffsetY.Text);

            foreach (Feature f in features)
            {
                var polys = f.Geometry.ScaleAndFlipCoordinates(scale, offsetX, offsetY, bounds.Bottom);
                foreach (var poly in polys)
                {
                    var pen = new Pen(Color.FromArgb(rd.Next(250), rd.Next(250), rd.Next(250)));
                    g.DrawPolygon(pen, poly);
                }
            }
        }