我如何为10名玩家find一套最佳的颜色?

我想给每个10名球员一个独特的识别颜色。 有没有一套最佳的颜色呢? 我如何创build一个?

我提出的每一套都包含太类似的颜色。

更新:我被问到这是什么(公平的问题)。 现在我可以告诉你 – Windwardopolis和颜色很好。

您可以在HSV空间中生成等距色调值:

for (int i = 0; i < 10; i++) colors[i] = HSV(0.1 * i, 0.5, 1.0); 

尝试1

但是,你可能不会总是有10名玩家。 在这种情况下,除非您为其他数量的玩家重新生成不同的调色板,否则调色板效果不佳。 相反, 有些作者build议使用黄金比例来生成调色板,并利用等分分布定理的特性 :

 for (int i = 0; i < 10; i++) colors[i] = HSV(fmod(i * 0.618033988749895, 1.0), 0.5, 1.0); 

试试2

这样,即使你停在三,四,七名选手,你的色彩传播也会非常好。

许多不合理的数字会做,但黄金比例将效果最好(已被certificate )。

最后,您也可以使用两个不同的生成序列来调整SV 例如( 编辑 :我添加了更好的equidistribution sqrt呼叫):

 for (int i = 0; i < 10; i++) colors[i] = HSV(fmod(i * 0.618033988749895, 1.0), 0.5, sqrt(1.0 - fmod(i * 0.618033988749895, 0.5))); 

试试3

更新 :通过使用考虑人类视觉系统的H (与RGB分量的伽玛曲线类似)的校正曲线,可以改善上述结果。 这是我使用CIEDE2000度量计算的色调校正曲线:

色调校正曲线

等距色调值的结果如下:

试试4

而对于黄金比例生成序列(在V上有和没有调整):

试试5试试6

我会尽快发布一个用于程序的曲线公式的近似值。

8星际的颜色是 :

红色,蓝色,蓝绿色,紫色,橙色,棕色(沙漠地图中的绿色),白色(冰图上的绿色),黄色

OBV。 暴雪是UI天才,并研究过这个问题。

他们把格林留在沙漠地图上作为布朗的replace,所以技术上在那里列出了9个。

12魔兽争霸3的颜色是:

红色,蓝色,蓝绿色,紫色,黄色,橙色,绿色,粉红色,灰色,浅蓝色,深绿色,棕色

这看起来如何:

在这里输入图像描述

正如你所看到的,它们非常独特,容易区分。 深绿色实际上很容易与深青色区分开来,可能是因为人眼可以很容易区分绿色的深浅。 如果你确定你的球员是女性四色球员,你可能会select任何颜色。

这里有几个人build议把HSV色彩空间分成10个色调等距的位置。 在我看来,这实际上不是一个好的解决scheme。 人眼在HSV光谱中不会感觉到颜色的差异。 例如,我们所说的橙色占据了乐队的一小部分,而好的25%的乐段可能会被认定为绿色。 所以它从一个坏的前提开始。 看看这个答案中的第一行颜色。 这两个绿色几乎难以区分。

记住你的用户需要沟通和参考颜色。 鉴于此,“星际争霸”/“魔兽争霸”主题是一个很好的跟随者。 根据简单的英文Crayola颜色列表select根本不是一个坏主意,因为你会以熟悉的命名颜色结束。 然后只要将这些颜色调整为大胆,静音,无论符合您的审美,只要他们仍然可以识别,即红色,橙色,黄色,绿色,蓝色,紫色,棕色,灰色,白色,黑色。

编辑:语言和颜色感知之间的联系是如此有趣,我只是想分享这个真棒链接:

世界的蜡笔画:我们如何赋予颜色名称,它与我们的经验热情

我以为我需要打破这个“符号”的方法出来一个单独的答案。

当天早些时候,我认为人们需要旗帜和东西来轻松识别远方的军队路线,所以你知道是攻击还是防御(如果是敌人),还是放心(在盟友的情况下)。

所以,这正是你想要做的。 轻松识别远处的东西。

你可以用颜色来做到这一点,但可能更好的方法是用颜色和符号 。 使用颜色和符号的组合将帮助人们识别事物,就像上面提到的许多人一样。

如果单位够大的话,还可以拿2-4色的外套。

在这里输入图像描述

图案很容易识别,而不仅仅是一种颜色。 良好的纹理可以在每个单元的胸部或上臂烙印相当大的纹章。

在上面的图片中,不同单位的头盔有不同的几何形状 ,还有盾徽。

你可能会觉得日本人周一的想法也很有趣,这很简单,看“标志”

日本星期一

现在你基本上用现代的“品牌”把你的单位打上品牌。 “星际争霸II”做了一些“贴花”,

在这里输入图像描述

但是这些在游戏中几乎不可见

在这里输入图像描述

而不是用来识别单位的颜色是多less。

我会看标志以及灵感,特别是那些不使用三色条纹(那些变得有点混乱)的标志。 考虑:

  • 瑞士: 瑞士国旗
  • Somolia: Somolia旗子
  • 韩国: 韩国国旗

这些都有一些非常简单,但独特的标志。

还要查看美国政府用来识别国防人员的符号。 这些是单色图像 (可以完全用黑色和白色完成),所以这可能是一个很好的解决scheme,不会排除色盲(基本上使用符号来识别团队,而不是颜色)

在这里输入图像描述

制作10种可以区分的颜色将会非常困难。 这是创buildgraphics或图表的一个很常见的问题,这就是为什么他们经常使用颜色和形状,颜色和哈希模式组合。

如果需要显示标记,可以使用4种基本颜色(例如红色,蓝色,橙色,黑色)和四种基本形状(正方形,圆形,三angular形,菱形),并且可以非常容易地区分标记。

如果您在区域着色,请使用相同的想法,但将颜色与黑色或白色线条的图案相结合,而不是形状。

要考虑的另一件事是不要使用颜色作为唯一的方式来告诉一方。 鼠标hover在某个区域可以突出显示它,并给出一个工具提示,其中明确指出了玩家的名字。 或者,也许10个玩家的列表可以被掩盖,当玩家名字盘旋时,显示该玩家在地图上的所有区域。

另外,在select颜色时,请记住色盲。 例如绿色和红色可能无法区分。 查看一下http://jfly.iam.u-tokyo.ac.jp/color/#select获取一组build议的颜色,这对色盲人士来说不是问题&#x3002; 另外一个资源是http://www.usability.gov/articles/newsletter/pubs/022010new.html#ColorsthatWorktheBest

为什么重新发明轮子? 甚至有一套十六种颜色的标准,其中你可以select十种颜色。 这是ANSI设置http://en.wikipedia.org/wiki/ANSI_escape_code#Colors

在这里输入图像描述

ANSI颜色平均分布在RGB立方体上,我认为这比HSV空间更适合这个问题。

当RGB立方体的极端,你会得到熟悉的颜色,如红色,蓝色,青色等。在八个angular点后,你得到所有的点之间,边缘。

即使你可以得到10个独特的颜色,可以容易地由一个人区分,另一个人可能仍然觉得这个集很难区分。

考虑将自己限制在一个较小的颜色集合中,并添加一个可区分的function ,如黑色条纹 。 对于这套颜色,最好不要偏离大多数人容易区分的地方: ROYGBIV 。 ROYGBIV上的一个简单的条纹/无条纹可以让你识别14个游戏块。

你也不必限制自己黑色的条纹。 考虑下面的解决scheme连接25对(这可能很容易成为条纹,而不是对): http : //en.wikipedia.org/wiki/25-pair_color_code

只是想引用一下Tableau-10调色板,这个调色板是为高度独特性而开发的,在本文中对此进行了描述:

http://vis.stanford.edu/files/2012-ColorNameModels-CHI.pdf

“Tableau-10调色板提供了最好的颜色显着性和最小的名称重叠。”

布伦特·柏林(Brent Berlin)和保罗·凯(Paul Kay)表明,颜色空间可以分成几个基本颜色,但是这取决于你的文化,因为给一个颜色起一个名字使得它更加可区分。

英文有11种基本颜色:白色,黑色,红色,绿色,黄色,蓝色,棕色,紫色,粉红色,橙色和灰色。

与Matt Montag所说的一样,我不喜欢在轮子上select色调的想法

除了颜色之外,还有不仅仅是颜色的视觉performance,还会增加知识,艺术风格和颜色performance。

例如“五环传说”使用了一种令人难以置信的方式来区分“色彩集”。

最吸引人的例子之一。 注意他们区分族之间的数百种方式。 这不仅是原色,而且是二次甚至三次色。 颜色甚至包括在发型,穿着types,字符types,附加符号,旗帜,横幅,背面迷你旗帜,个性。

我会从这个最大的事情是多种颜色的组合。 这不是一个简单的:蓝色,红色,紫色,棕色,黄色,绿色,蓝绿色。

它是两种颜色的组合,两者都非常明显。 这可以允许大量额外的玩家。

每个家族都有一个主色和一套二次色。

“蟹主要是蓝灰色,加上黑色,红色和棕色。”

这是美丽的,因为无论什么样的人(大,体弱,武士,巫师,农民),你总是可以告诉他们是从哪个家族。 蝎子不仅仅是“红色”,它是一个黑暗的血红色和黑色。 而凤凰有阳光的颜色:红色,橙色,黄色。

你永远不会把蝎子和凤凰混为一谈,即使它们的颜色相似,而且都用了很多红色。

试试这个混色器:

http://www.w3schools.com/tags/ref_colormixer.asp?colorbottom=7FFFD4&colortop=FFFFFF

这是我会做的:select第一个选项的颜色。 然后,为第二个选项select一个,使第二个颜色与第一个颜色相反。 所以位置上的颜色:行1,单元格1将有相反的:最后一行,最后一个单元格。

这样你每次都会在混合物的两端有两种不同的颜色。 重复5次,总是select与上次select相距甚远的颜色。

对于可变数量的玩家(不考虑色盲),确保最佳色差的方法是从HSL (色调,饱和度和亮度)颜色模型中进行select。

你select一个恒定的亮度和饱和度,取决于你的select。 然后你将颜色的色调移动360 / playerCount ,就像下面的伪代码一样:

 saturation = 200; lightness = 128; hueDelta = 360 / PLAYER_COUNT; for (int i = 0; i < PLAYER_COUNT; i++) color[i] = Color.FromHSL(hueDelta * i, saturation, lightness);