【问题标题】:Color picker does not give gradient appearance颜色选择器不提供渐变外观
【发布时间】:2009-06-12 13:35:22
【问题描述】:

我添加了以下代码。但它对我产生了 16 种颜色。但我需要“红色”和“卡其色”之间的 16 种颜色。我不需要梯度流。我的颜色看起来像渐变流。我的颜色不能彼此靠近。因为我将在图表列中使用此代码返回值。他们离得太近了。

  static class Program
    {

        [STAThread]
        static void Main()
        {
            Form form = new Form();
            Color start = Color.Red, end = Color.Khaki;
            for (int i = 0; i < 16; i++)
            {
                int r = Interpolate(start.R, end.R, 15, i),
                    g = Interpolate(start.G, end.G, 15, i),
                    b = Interpolate(start.B, end.B, 15, i);

                Button button = new Button();
                button.Dock = DockStyle.Top;
                button.BackColor = Color.FromArgb(r, g, b);
                form.Controls.Add(button);
                button.BringToFront();
            }

            Application.Run(form);
        }
        static int Interpolate(int start, int end, int steps, int count)
        {
            float s = start, e = end, final = s + (((e - s) / steps) * count);
            return (int)final;
        }
    }

【问题讨论】:

  • 我认为您需要在这里重写问题。代码很清楚,但我不知道你真正想要什么。
  • 您上面的代码将生成“介于”红色和卡其色之间的 16 种颜色。你是说你想要不同的颜色分布,而不是线性渐变?你必须让问题更清楚。
  • 是的,我想要不同的颜色分布

标签: c# .net colors system.drawing.color


【解决方案1】:

这是程序的输出。 我认为他想要红色/卡其色范围内的颜色,但彼此之间不太接近。我认为他想要选择类似于http://www.colorschemer.com/online.html的互补色

Example run http://img196.imageshack.us/img196/9256/20090612094934.png

【讨论】:

  • 我想看其他颜色。如棕色或粉色
【解决方案2】:

修改后的问题文本非常清楚:您希望在红色和卡其色之间的渐变中使用 16 种颜色,其中任何两种颜色之间的视觉差异在视觉上比您选择的颜色更显着。

也许更好的标题是“我可以使用什么算法来生成红色和卡其色之间的 16 种视觉上不同的颜色?”

我认为没有。红色 (255, 255, 0) 和卡其色 (255, 240, 230) 差别不大:RGB 差异 = (0,15,-230)

如果您像您一样将其分成 16 个相等 步,则生成的颜色足够接近,看起来像您所说的渐变。如果您使用 不等 步长(可能是对数刻度),您的结果会更糟,至少在您范围的一端。

我认为您需要 a) 选择不同的端点或 b) 选择离散的颜色,而不是尝试在端点之间获取它们

或者您可能想看看 this thread 关于选择不同颜色的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 2014-08-04
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 2020-10-13
    相关资源
    最近更新 更多