2011-12-27 91 views
0

我正在Java中构建一个应用程序,其中不同的地块包含一组地块。我想用不同颜色对不同的补丁着色。我的地图提供了补丁包裹。然而,两个补丁可以有共同的包裹。在这种情况下,我想用一些中间色(包含两个色块的颜色)对这些包裹着色。因为我不知道要选择多少个补丁,所以我必须为循环中的那些分配随机颜色。然后我必须解决那些相交包裹的颜色。任何关于在java中做到这一点的最佳方法的想法?分配java颜色

回答

1

对于混合颜色,可以通过getRed(),getBlue()等或getColorComponents()获取单独的R,G,B值,然后取每个的平均值,然后创建一个新的颜色。你也可以平均HSB值。你也可以玩alpha(透明度),用0.5的alpha来绘制每个原始颜色。但是,在某些时候,所有这些微妙的混合变得难以让用户弄清楚。相反,您可能想要使用原始颜色的某些图案(如条纹)。

我已经尝试了很多方法来选择“好”随机颜色,并没有太多的成功。最好的技术使用HSB值。可以说你需要5种颜色。将360度除以5,并以这些角度在色轮周围拾取色调。这工作o.k.如果你喜欢真正明亮的完全饱和的颜色。

国际海事组织,认为至少将“最常见”的包裹颜色硬编码成看起来不错的东西。尽可能少地随机挑选颜色。

1

我不知道这个问题的明显解决方案,但我想你可以使用平均rgb组件。 例如,您有两种颜色的RGB表示法:A(100,0,0)和B(0,100,0)。结果颜色将是C(50,50,0)。

注意:在这种情况下,您可以保存不变的“两个相同颜色之间的交点将是相同的颜色”