java - 分配java颜色

标签 java colors

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

最佳答案

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

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

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

关于java - 分配java颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8647009/

相关文章:

button - 如何在odoo中更改按钮的颜色并使其在单击一次后禁用?

jquery - 如何修复鼠标单击时的边框颜色

c++ - SFML 拾色器问题

graphics - 为什么色调旋转 +180deg 和 -180deg 不会产生原始颜色?

安卓 QN : Change color of paint without affect previously drawn lines

java - 输入流不读取任何内容

java - java中StringBuilder.append()的时间复杂度是多少?

java - 初中级 Android 学习的一些资源

java - Libgdx 锁定宽高比到一定范围

java - 在 Gradle 构建中兼顾 Scala、Antlr 和 Java