【问题标题】:Assigning java colors分配java颜色
【发布时间】:2011-12-27 16:43:12
【问题描述】:

我正在用 Java 构建一个应用程序,其中不同的土地块由一组地块组成。我想用不同的颜色为不同的补丁上色。我的地图显示了补丁的包裹。然而,两个补丁可以有共同的包裹。在那种情况下,我想用一些中间颜色(两个补丁颜色的混合)为这些包裹着色。由于我不知道要选择多少补丁,我必须为循环中的补丁分配随机颜色。然后我必须为那些相交的包裹解析颜色。关于在 java 中执行此操作的最佳方法有什么想法吗?

【问题讨论】:

    标签: java colors


    【解决方案1】:

    为了混合颜色,您可以通过 getRed()、getBlue() 等或 getColorComponents() 获取单独的 R、G、B 值,然后取每个值的平均值,然后创建新颜色。您还可以平均 HSB 值。您还可以使用 alpha(透明度),用 0.5 的 alpha 绘制每种原始颜色。然而,在某些时候,所有这些微妙的混合对于用户来说变得难以理解。相反,您可能希望在原始颜色中使用一些图案(如条纹)。

    我尝试了很多方法来挑选“好”的随机颜色,但都没有取得太大的成功。最好的技术使用 HSB 值。假设你需要 5 种颜色。将 360 度除以 5 并在这些角度“围绕”色轮选择色调。这工作正常。如果你喜欢非常明亮的完全饱和的颜色。

    IMO,请考虑将至少“最常见”的包裹颜色硬编码为看起来不错的东西。尽可能少地随机选择颜色。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-28
        • 1970-01-01
        • 2013-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        • 2015-01-28
        相关资源
        最近更新 更多