3

我需要通过时间来表现一系列元素。出于设计目的,它们中的每一个都应该有一种颜色,以便更容易一目了然地识别每一个。关键是,如果人类无法察觉它们之间的颜色差异,那么每个元素的颜色将毫无意义。

元素唯一的固定属性是它们的 ID。这个 ID 应该从一个元素到另一个元素不同,但这并不确定。

我寻找的是一个基于数字 ID 的哈希函数,它返回一个 HEX 颜色(网络格式,例如 #f62035),它与前一个 ID 和下一个 ID有很大不同。此外,HEX 颜色不能太暗,因为显示元素的背景是黑色的。


例子:

Element ID: 12  
Element ID: 13

hash(12) = #f46600  
hash(13) = #5aa9aa
4

1 回答 1

2

恕我直言,根据你需要多少种不同的颜色,我认为你最好的解决方案是建立一个要使用的颜色列表,比如 100 种不同的颜色变化,并按照你想要使用它们的顺序对它们进行排序,然后你可以通过从这个列表中按顺序分配它们来使用这些作为你的颜色,当你到达列表的末尾时,你可以重新开始。

此解决方案不可扩展,但您必须记住,人类可以分辨出它们不同且适合您的设计的颜色很少。

要创建此列表,也许您可​​以编写一个不同的 java 应用程序来显示颜色选择器,这样您就可以选择颜色,代码会为您创建列表

于 2012-02-13T09:59:03.573 回答