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