Exemplo n.º 1
0
        public void Hsb2rgbTestWhite()
        {
            var rgb      = ColorSystems.Hsb2rgb(0, 0, 1);
            var expected = Vector3.One;             //white

            Assert.AreEqual(expected, rgb);
        }
Exemplo n.º 2
0
        public void Hsb2rgb(float h, float s, float b, Color expectedColor)
        {
            var rgb      = ColorSystems.Hsb2rgb(h, s, b);
            var expected = expectedColor.ToVector3();

            Assert.AreEqual(expected, rgb);
        }
Exemplo n.º 3
0
        public void Hsb2rgbBlue()
        {
            var rgb      = ColorSystems.Hsb2rgb(4.0f / 6.0f, 1, 1);
            var expected = new Vector3(0, 0, 1);

            Assert.AreEqual(expected, rgb);
        }
Exemplo n.º 4
0
        public void Hsb2rgbMagenta()
        {
            var rgb      = ColorSystems.Hsb2rgb(5.0f / 6.0f, 1, 1);
            var expected = new Vector3(1, 0, 1);

            Assert.AreEqual(expected, rgb);
        }
Exemplo n.º 5
0
        public void Hsb2rgbTestGreen()
        {
            var rgb      = ColorSystems.Hsb2rgb(2.0f / 6.0f, 1, 1);
            var expected = Vector3.UnitY;

            Assert.AreEqual(expected, rgb);
        }
Exemplo n.º 6
0
        public void Hsb2rgbTestBlack1()
        {
            var rgb      = ColorSystems.Hsb2rgb(0, 0, 0);
            var expected = Vector3.Zero;             //black

            Assert.AreEqual(expected, rgb);
        }
Exemplo n.º 7
0
        public void Hsb2rgbTestRed()
        {
            var rgb      = ColorSystems.Hsb2rgb(0, 1, 1);
            var expected = Vector3.UnitX;             //red

            Assert.AreEqual(expected, rgb);
        }
Exemplo n.º 8
0
        public void Hsb2rgbTestYellow()
        {
            var rgb      = ColorSystems.Hsb2rgb(1.0f / 6.0f, 1, 1);
            var expected = new Vector3(1, 1, 0);

            Assert.AreEqual(expected, rgb);
        }
Exemplo n.º 9
0
        public void Hsb2rgbTestColor()
        {
            var rgb      = ColorSystems.Hsb2rgb(0, 0.2f, 1);
            var expected = new Vector3(1, 0.8f, 0.8f);

            Assert.AreEqual(expected, rgb);
        }
Exemplo n.º 10
0
        public Collider(float x, float y, float sizeX, float sizeY)
        {
            Box = new Box2D(x, y, sizeX, sizeY);
            //make a hsb color sweep in polar coordinates
            var polar = MathHelper.ToPolar(new Vector2(x, y));
            var rgb   = ColorSystems.Hsb2rgb(polar.X / MathHelper.TWO_PI + 0.5f, polar.Y, 1);

            Color    = ColorSystems.ToSystemColor(rgb);
            Velocity = Vector2.Zero;
        }
Exemplo n.º 11
0
        public static Func <Bitmap, Dictionary <string, int[]> > GetHistoDataMethod(ColorSystems cs)
        {
            switch (cs)
            {
            case ColorSystems.RGB:
                return(RGB_GetHistoData);

            case ColorSystems.HSL:
            default:
                return(HSL_GetHistoData);
            }
        }
Exemplo n.º 12
0
        public override void Render()
        {
            GL.Clear(ClearBufferMask.ColorBufferBit);
            const int count   = 16;
            var       boxSize = 1.9f / count;

            for (int xI = 0; xI < count; ++xI)
            {
                float x          = xI * 2f / count - 1f;
                float brightness = xI / (float)count;
                for (int yI = 0; yI < count; ++yI)
                {
                    float y          = yI * 2f / count - 1f;
                    float saturation = yI / (float)count;
                    var   color      = ColorSystems.Hsb2rgb(Hue, saturation, brightness);
                    DrawRect(new Box2D(x, y, boxSize, boxSize), color);
                }
            }
        }
Exemplo n.º 13
0
        public static Bitmap GetStretch(Bitmap image_original, int margin, ColorSystems cs)
        {
            // Get data
            var stretch     = new Bitmap(image_original);
            var histoData   = ColorSystem.GetHistoDataMethod(cs)(image_original);
            var minsAndMaxs = GetHistoMinMax(histoData, margin);
            var stretchPix  = ColorSystem.GetStretchPixelMethod(cs);

            // Stretch
            for (int i = 0; i < image_original.Width; i++)
            {
                for (int j = 0; j < image_original.Height; j++)
                {
                    stretch.SetPixel(i, j, stretchPix(image_original.GetPixel(i, j), minsAndMaxs));
                }
            }

            // Return it
            return(stretch);
        }
Exemplo n.º 14
0
        private void InitParticles()
        {
            var          rnd      = new Random(12);
            Func <float> Rnd01    = () => (float)rnd.NextDouble();
            Func <float> RndCoord = () => (Rnd01() - 0.5f) * 2.0f;
            Func <float> RndSpeed = () => (Rnd01() - 0.5f) * 0.1f;

            bufferParticles = new BufferObject(BufferTarget.ShaderStorageBuffer);

            var data = new Particle[particelCount];

            for (int i = 0; i < particelCount; ++i)
            {
                data[i].position = new Vector2(RndCoord(), RndCoord());
                data[i].velocity = new Vector2(RndSpeed(), RndSpeed());
                var polar     = MathHelper.ToPolar(data[i].position);
                var color     = ColorSystems.Hsb2rgb(polar.X / MathHelper.TWO_PI + 0.5f, polar.Y, 1);
                var byteColor = ColorSystems.ToSystemColor(color);
                data[i].color = color;
                data[i].size  = (Rnd01() + 1) * 10;
            }
            bufferParticles.Set(data, BufferUsageHint.StaticCopy);
        }
Exemplo n.º 15
0
 public Bitmap GetStretchImage(ColorSystems cs, int margin)
 {
     StretchImage = Histogram.GetStretch(Data.Image_Original, margin, cs);
     return(StretchImage);
 }
Exemplo n.º 16
0
        public static Func <Color, Dictionary <string, int[]>, Color> GetStretchPixelMethod(ColorSystems cs)
        {
            switch (cs)
            {
            case ColorSystems.RGB:
                return(RGB_StretchPixel);

            case ColorSystems.HSL:
            default:
                return(HSL_StretchPixel);
            }
        }
Exemplo n.º 17
0
        public static Bitmap GetHistogram(Bitmap image, int margin, bool showMargin, bool showMinMax, ColorSystems cs)
        {
            // Get data
            var histoData    = ColorSystem.GetHistoDataMethod(cs)(image);
            var minsAndMaxs  = GetHistoMinMax(histoData, margin);
            var histo        = new Bitmap(256, 100);
            int histoDataMax = 0;

            foreach (var kvp in histoData)
            {
                int max = kvp.Value.Max();
                if (histoDataMax < max)
                {
                    histoDataMax = max;
                }
            }

            // Draw histogram
            using (Graphics g = Graphics.FromImage(histo))
            {
                // Clear it
                g.Clear(Color.White);

                // Draw the parts
                foreach (var kvp in histoData)
                {
                    // Data Conversion
                    var vals = new PointF[256];
                    for (int i = 0; i < 256; i++)
                    {
                        vals[i] = new PointF(i, ((kvp.Value[i] * 100) / histoDataMax));
                    }

                    // Make sure there is a start/end point
                    var list = vals.ToList();
                    list.Insert(0, new PointF(0, 0));
                    list.Add(new PointF(255, 0));
                    vals = list.ToArray();

                    g.FillPolygon(new SolidBrush(Color.FromArgb(TRANSPARENCY, Color.FromName(kvp.Key))), vals);
                }

                // Draw MinMax
                if (showMinMax)
                {
                    foreach (var kvp in minsAndMaxs)
                    {
                        var dashpen = new Pen(Color.FromName(kvp.Key), 1f)
                        {
                            DashPattern = new float[] { 4, 2 }
                        };
                        g.DrawLine(dashpen, new Point(kvp.Value[0], 0), new Point(kvp.Value[0], 255));
                        dashpen.DashPattern = new float[] { 1, 1 };
                        g.DrawLine(dashpen, new Point(kvp.Value[1], 0), new Point(kvp.Value[1], 255));
                    }
                }

                // Draw Margin
                if (showMargin)
                {
                    var dashpen = new Pen(Color.Black, 1f)
                    {
                        DashPattern = new float[] { 4, 2, 2, 2 }
                    };
                    g.DrawLine(dashpen, new Point(0, ((margin * 100) / histoDataMax)), new Point(255, ((margin * 100) / histoDataMax)));
                }
            }

            return(histo);
        }
Exemplo n.º 18
0
 public Bitmap GetOriginalHistogram(ColorSystems cs, int margin, bool showMargin, bool showMinMax)
 {
     OriginalHisto = Histogram.GetHistogram(Data.Image_Original, margin, showMargin, showMinMax, cs);
     OriginalHisto.RotateFlip(RotateFlipType.Rotate180FlipX);
     return(OriginalHisto);
 }
Exemplo n.º 19
0
 public Bitmap GetStretchHistogram(ColorSystems cs)
 {
     StretchHisto = Histogram.GetHistogram(StretchImage, 0, false, false, cs);
     StretchHisto.RotateFlip(RotateFlipType.Rotate180FlipX);
     return(StretchHisto);
 }