【发布时间】:2016-03-15 22:31:58
【问题描述】:
我有一个元素序列,每个元素都有自己的 ID。 ID 从 1...n 开始运行。我希望所有共享 ID 的元素都以相同的颜色显示。
我知道我可以为每个数字定义一个颜色数组,但这将是静态的,我真的不知道我会有多少个数字。
到目前为止,我已经这样做了:
private object getIntColorString(int IDNum)
{
return IDNum.ToString("X6");
}
但我没有考虑清楚,因为颜色之间的差异太小了。于是我就这样做了:
private object getIntColorString(int eventTrainingProgramID)
{
int colorCode = eventTrainingProgramID * 100;
return colorCode.ToString("X6");
}
但是,这会产生相同颜色的多次重复。
有什么建议吗?
【问题讨论】:
-
@LuigiCortese int.Max ...
-
所以你需要... 0x7fffffff 不同的颜色?或者你可以同时拥有多少个不同的值?
-
好吧,如果你这样说..那么是的..但是重复相同的颜色是可以的......我可以处理一半甚至 1/4 的 int.MAX .. .
-
您可以有一个不同颜色的列表(红色、绿色、蓝色等)和一个字典,以将它们分配给某个 id(
Dictionary<int,int>,id 和颜色索引)。当 id 太多时,您可以开始重用颜色,可能会有一些变化(样式或稍微改变给定颜色的 rgb)。考虑为用户提供选择颜色或跟踪特定 id 的可能性(选择时将其绘制得更粗)等。 -
首先,你将如何表示颜色?整数?整数的范围是多少?
标签: javascript java c# algorithm colors