我正在用Java构建一个应用程序,其中不同的土地块由一组包裹组成。我想给不同颜色的不同贴片上色。我的地图显示了补丁的包裹。但是,两个补丁可以有共同的包裹。在这种情况下,我想用一些中间颜色(两个补丁的颜色混合)为这些包裹上色。由于我不知道将要选择多少个补丁,我必须为循环中的那些补丁分配颜色。然后我必须为那些相交的地块解析颜色。有关在java中做到这一点的最佳方法的想法吗?
答案 0 :(得分:1)
对于混合颜色,您可以通过getRed(),getBlue()等或getColorComponents()获取单独的R,G,B值,然后取每个的平均值,然后创建一个新颜色。您还可以平均HSB值。您还可以使用alpha(透明度),使用0.5的alpha绘制每个原始颜色。然而,在某些时候,所有这些细微的混合变得难以让用户弄清楚。相反,您可能希望使用一些具有原始颜色的图案(如条纹)。
我尝试了许多方法来选择“好”的随机颜色,并没有取得多大成功。最好的技术使用HSB值。让我们说你需要5种颜色。将360度除以5,并在这些角度处选择“围绕”色轮的色调。这适用于o.k.如果你喜欢真正明亮的完全饱和的颜色。
IMO,考虑将至少“最常见”的包裹颜色硬编码成看起来不错的东西。尽可能少地选择颜色。
答案 1 :(得分:1)
我不知道这个问题的明显解决方案,但我想你可以使用平均rgb组件。 例如,RGB表示法有两种颜色:A(100,0,0)和B(0,100,0)。结果颜色为C(50,50,0)。
注意:在这种情况下你保存不变“两个相等颜色之间的交点将是相同的颜色”