Ejemplo n.º 1
0
        void BuildEDensity(Bitmap densMap)
        {
            var maxPing  = float.Parse(txtSLAMaxPing.Text);
            var capacity = float.Parse(txtFogCapacity.Text);

            var epDensities = new double[1200][];

            var etotal = 0d;
            var max    = 0d;

            for (int x = 0; x < densMap.Width && x < 1200; x++)
            {
                epDensities[x] = new double[750];
                for (int y = 0; y < densMap.Height && y < 750; y++)
                {
                    var pix = densMap.GetPixel(x, y);
                    //white is "unknown, so leave at 0"
                    if (!(pix.R == 255 && pix.G == 255 && pix.B == 255))
                    {
                        epDensities[x][y] = pix.B * 255 * 255 + pix.G * 255 + pix.R;

                        etotal += epDensities[x][y];
                        max     = Math.Max(epDensities[x][y], max);
                    }
                }
            }

            EPPixels = new List <double>();

            var pTotal       = 0d;
            var statGradient = max / 255;

            for (int x = 0; x < densMap.Width && x < 1200; x++)
            {
                for (int y = 0; y < densMap.Height && y < 750; y++)
                {
                    pTotal += epDensities[x][y] / etotal;
                    EPPixels.Add(pTotal);
                    Pixels.Add(new System.Drawing.Point(x, y));

                    //cough
                    var pix       = densMap.GetPixel(x, y);
                    var red       = 0;
                    var green     = 0;
                    var blue      = 0;
                    var fillValue = epDensities[x][y] / statGradient;

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

                    if (!(pix.R == 255 && pix.G == 255 && pix.B == 255))
                    {
                        pix = Color.FromArgb(150, red, green, blue);
                        DensityMap.SetPixel(x, y, pix);
                    }
                }
            }
        }
Ejemplo n.º 2
0
    public void Generate()
    {
        DensityMap = (DensityMap)FindObjectOfType(typeof(DensityMap));
        RoadMap    = (RoadMap)FindObjectOfType(typeof(RoadMap));

        DensityMap.Initialize(Width, Length);
        DensityMap.Generate();
        DensityMap.Draw();

        if (RoadMap.Lines != null)
        {
            RoadMap.Clear();
        }

        RoadMap.Initialize();
        RoadMap.Generate(DensityMap.MaxPosition, DensityMap.MapData);
        RoadMap.Draw();
    }