gpt4 book ai didi

将数字映射到十六进制颜色的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:51:24 25 4
gpt4 key购买 nike

这是我的情况。假设我有两列包含不同元素的数据。我想用不同的颜色突出显示这两列之间的所有匹配元素。这些元素中的每一个都有一个 ID,因此我正在考虑创建一个映射函数以将 ID 绑定(bind)到十六进制颜色。有什么建议么?

这就是我的想法:向每个十六进制数添加一个任意数字,比如 111,以生成新颜色(并对其进行修改以处理溢出)...所以 111*id + 起始十六进制数。

这合理吗?有没有人对 111 有什么建议,这样颜色在早期就不同了,但不要那么快地修改到相同的值?假设我想要 50 种独特的颜色,尽可能多样化。

谢谢,
迈克尔

最佳答案

虽然 HSV 颜色空间在为您提供“不同外观”的颜色方面可能更好,但 RGB 可能“足够好”。

您可以让红色、绿色和蓝色成为 {0, 40, 7F, FF} 之一。这给出 4x4x4 = 64 种颜色。像这样:

Red = ID % 4
Grn = (ID / 4) % 4
Blu = (ID / 16) % 4

print hex(floor(Red * 255 / 3)) //etc

人眼应该比红色/蓝色更容易检测到绿色的变化。因此,如果您需要更多颜色,可以让红色和蓝色取 4 个可能的值,让绿色取 5 个(提供 80 种颜色)。

如果您不希望连续的 ID 在颜色上靠在一起,您可以创建一个数组,将 ID 映射到一组打乱的数字。

此外,如果您的 ID 不是从 0 到 63 之间完全连续,那么您可以让您的程序找到所有实际使用的 ID,并将它们映射到 0 到 63 之间的数字。

关于将数字映射到十六进制颜色的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com