我想在后面的代码中在WPF中生成12种不同的可见画笔颜色,并且最初12的颜色数量可能随应用程序的发展而变化,即我想根据给定的数量生成尽可能多的不同可见画笔颜色?
我会再解释一下:
我在for循环中创建矩形,对于在运行时创建的每个矩形,我必须指定一个填充颜色,例如。
for (i=0; i<12; i++)
{
Rectangle rect = new Rectangle();
rect.Fill = <I want to assign a unique visible color>;
rect.Stroke = Brushes.Black;
rect.StrokeThickness = 1;
}
答案 0 :(得分:1)
您可能需要的是RGB到HSL和HSL到RGB转换器。然后,您可以将总色调(通常表示为圆圈中的度数,有时是百分比值)除以所需颜色的数量。按段数增加色调值应该可以产生最有区别的颜色。
大多数示例使用WinForms Color对象,因为它能够提供H S和L值。有很多在线示例:
答案 1 :(得分:0)
答案 2 :(得分:0)
使用随机数生成器为颜色创建RGB三元组。将其保存在列表中。然后下一轮循环检查新生成的颜色对照列表。如果它不在列表中,请使用它,如果再次选择它。
如果您有很多颜色,这可能会遇到麻烦,因此您越来越有可能碰到现有颜色,但对于12种(或左右)颜色应该没问题。
或者创建100个颜色的列表,并在随机选取颜色时从列表中删除每个颜色。这将确保您不会发生任何冲突,但如果您需要更多颜色,则需要扩展列表。