Beispiel #1
0
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            pictureBox1.Refresh();
            Point p = pictureBox1.PointToClient(Cursor.Position);                       //чтобы можно было получать цвет под курсором

            textBox1.Text = ColorTranslator.ToHtml(bit1.GetPixel(p.X, p.Y)).ToString(); //вывод HEX кода цвета

            //рисование белого и черного кругов под курсором
            Graphics circle = pictureBox1.CreateGraphics();

            circle.DrawEllipse(penWhite, p.X, p.Y, 10, 10);
            circle.DrawEllipse(penBlack, p.X - 1, p.Y - 1, 12, 12);

            common = ColorTranslator.FromHtml(textBox1.Text); //текущий цвет
            int    R = common.R, G = common.G, B = common.B;  //получение RGB из текущего цвета
            double H1, S1, H2, S2;
            int    R1, G1, B1, R2, G2, B2;

            ColorLogic.RGBToHSV(R, G, B, out H1, out S1, out double V1);
            H1 = Math.Round(H1);
            S1 = Math.Round(S1 * 100);
            H2 = H1; S2 = S1;
            ColorLogic.HSVToRGB(H1, S1, 0, out R1, out G1, out B1);
            ColorLogic.HSVToRGB(H2, S2, 100, out R2, out G2, out B2);
            top              = Color.FromArgb(R1, G1, B1); //получение цвета сверху
            bottom           = Color.FromArgb(R2, G2, B2); //и снизу по изменению насыщенности
            panel1.BackColor = common;                     //вывод текущего цвета на панель
            pictureBox2.Invalidate();                      //нарисовать градиент на pictureBox2
        }
Beispiel #2
0
        //случайные цвета частицам
        private void button1_Click(object sender, EventArgs e)
        {
            Random rand = new Random();
            double H = rand.Next(0, 360), H1 = rand.Next(0, 360),
                   S = rand.Next(0, 100), S1 = rand.Next(0, 100),
                   V = rand.Next(0, 100), V1 = rand.Next(0, 100);
            int R, R1, G, G1, B, B1;

            ColorLogic.HSVToRGB(H, S, V, out R, out G, out B);
            ColorLogic.HSVToRGB(H1, S1, V1, out R1, out G1, out B1);
            emitter.ColorFrom = Color.FromArgb(R, G, B);
            emitter.ColorTo   = Color.FromArgb(R1, G1, B1);
        }