易于理解的复杂颜色选择器

时间:2013-01-04 22:57:31

标签: android ios drawing color-picker

我正在创建一个应用程序,要求用户从颜色选择器中选择多种颜色,并设置某些颜色的概率大于等于被选中的概率。

一个例子:假设用户选择红色,绿色和蓝色,并选择红色应该有3个机会被选中而另一个只有1个。 因此,最终红色将有60%的几率,绿色的20%和蓝色的20%。

现在我想这样做但是图形化且易于理解。

我有一些想法,但我不确定哪一个好...或者容易......或者其他什么。

创意1:

picker1

用户选择哪种颜色更有可能获得。这些数字基本上是每种颜色的重量。 问题在于,由于显而易见的原因,你无法精确地拥有全部颜色(全部为16,777,216个)......所以你需要的颜色相对较少(约150或者其他颜色)。

创意2:

picker2

用户从区域中选择颜色。这样更好,因为你可以拥有全系列的颜色......但是我想不出一种简单的方法来获得一个更有机会被采摘的颜色(比如上面的重量)。

这些只是我有缺陷的想法。你可以改进这些或给出其他想法。一个颜色选择器的源代码的链接,完全符合我的要求,但会更好。 :)

4 个答案:

答案 0 :(得分:1)

看起来您正在寻找一种“创新理念”如何在移动设备上处理它。对不起,这就是你的作业。

但是这篇文章可能会给你一些启发。

http://www.fastcompany.com/3002676/magical-tech-behind-paper-ipads-color-mixing-perfection

答案 1 :(得分:0)

您应该在用户选择颜色的地方进行操作,一旦完成,他就可以选择不同颜色的权重。

答案 2 :(得分:0)

如果我找对你,用户必须在颜色和数字/重量之间进行分配。我可以看到这对于Idea#1如何轻松工作,但不能用于#2,因为在后者中你没有一个明确的颜色值来检查。

你能想到的唯一想法是将用户形状输入(那些blob)转换为矩形(或者只允许那些开头)并将它们存储在你的app中,每个矩形也分配一个权重

根据该信息,您可以计算一些“重量带”:

  1. 假设:三个部分(无论它们在屏幕上的位置都无关紧要,但为了清楚起见,我将其命名为左,中,右):左(重4),中(重2),右(重量6)

  2. 求所有权重(12)

  3. 查找归一化因子以得到总和0..1 - > factor = 1/12

  4. 对于每个rect计算标准化重量:
       L = 4 * 1/12 = 0.333
       M = 2 * 1/12 = 0.167
       R = 6 * 1/12 = 0.500

  5. =>得到三个波段:#0.1从0.0到0.167,#2从0.167到0.500(= 0.167 + 0.333),#3从0.500到1.000

    1. 生成0到1之间的随机值,例如0.75。

    2. 将随机值与标准化的权重带进行比较 - > 0.75在0.5和1.0之间。第三个矩阵

    3. 现在您已经找到了相关的矩形,得到另外两个随机值,边界是X的最小值和最大值(对于第一个值)和Y(对于第二个值)坐标的确定矩形(这些矩形是在用户首先绘制了这些blob /矩形后保存。)

      最后一步是在上面显示的颜色范围纹理中查找刚刚生成的新坐标的颜色值,并根据分配给rects的重量确定颜色。

答案 3 :(得分:0)

我在某些地方尝试过第一种方法......但理想的方法是使用调色板 分组颜色。这就是像Benjamin Moore这样的大多数色彩公司的做法。这样您就可以控制所需的颜色阈值/重量。

看看这个

http://www.colourlovers.com/palettes/most-loved/all-time/meta