Esempio n. 1
0
        private static void TestIntensityImage()
        {
            var buffer = new Rgba32[width * height];

            Func <double, double, double, double> getCentralIntensity = (r, i0, k) => i0 *Math.Exp(-k *Math.Pow(r, 0.25));

            Func <double, double, double, double> getOuterIntensity = (r, i0, a) => i0 *Math.Exp(-r / a);

            Func <double, double> getSurfaceBrightness = (r) => {
                double i0 = 1.0, k = 0.02, a = 200;
                double bulgeradius = (width + height) * 0.05;
                return(r < bulgeradius?getCentralIntensity(r, i0, k) :
                           getOuterIntensity(r - bulgeradius, getCentralIntensity(bulgeradius, i0, k), a));
            };

            for (int i = 0; i < width * height; i++)
            {
                var p0        = ArrayIndex.From1DTo2D(i, width);
                var distance  = (p0 - new Vector2(width / 2, height / 2)).Length();
                var intensity = (float)Math.Clamp(getSurfaceBrightness(distance), 0, 1);
                var color     = new Rgba32(intensity, intensity, intensity);
                buffer[i] = color;
            }

            var time = DateTime.UtcNow.ToString("s", System.Globalization.CultureInfo.InvariantCulture).Replace(":", "-");

            CreateDirectoryIfNotExists("./data");
            // ImageWriter.FastWrite(ref buffer, $"./data/TestIntensityImage-{time}.png", width, height);
        }
Esempio n. 2
0
        private static void TestGenerateBasicMap()
        {
            var buffer = new Rgba32[width * height];

            fn.SetFractalOctaves(6);
            fn.SetFrequency(0.0007f);

            for (int i = 0; i < buffer.Length; i++)
            {
                var p0         = ArrayIndex.From1DTo2D(i, width);
                var pixelValue = fn.GetCellular(p0.X, p0.Y);

                if (pixelValue > 0)
                {
                    buffer[i] = new Rgba32(pixelValue, 10 + 1.0f * pixelValue, 0.0f);
                }
                else
                {
                    buffer[i] = new Rgba32(pixelValue, 0.0f, 10 + 1.0f * pixelValue);
                }
            }

            var time = DateTime.UtcNow.ToString("s", System.Globalization.CultureInfo.InvariantCulture).Replace(":", "-");

            CreateDirectoryIfNotExists("./data");
            //ImageWriter.FastWrite(ref buffer, $"./data/TestGenerateBasicMap-{time}.png", width, height);
        }
Esempio n. 3
0
File: Image.cs Progetto: kenwi/simd
        public static void Write(ref int[] buffer, string file, int width, int height)
        {
            var image = new System.Drawing.Bitmap(width, height);

            for (int i = 0; i < buffer.Length - 1; i++)
            {
                var index = ArrayIndex.From1DTo2D(i, width);
                var color = Color.FromArgb(buffer[i], buffer[i], buffer[i]);
                image.SetPixel((int)index.X, (int)index.Y, color);
            }
            image.Save(file);
        }