【问题标题】:Getting a UIColor from a restricted range in the HSB spectrum从 HSB 光谱中的受限范围获取 UIColor
【发布时间】:2015-11-16 19:10:07
【问题描述】:

我只想使用色调光谱的一部分(仅从黄绿色到红色)来指示由计算的浮点值指定的状态变化。

我发现使用整个频谱很容易:

float hue;
hue = (1.0 * [c floatValue]);

float saturation;
saturation = 1.0;

float alpha;
alpha =  1.0;

UIColor *color = [UIColor colorWithHue:hue
                            saturation:saturation
                            brightness:1.0
                                 alpha:alpha];

NSLog(@"color %@",color);


self.backgroundBar.backgroundColor = color;

但我不想要所有其他颜色。

c 是一个介于 0.00 和 1.0 之间的浮点值

如何将扫描范围限制在黄绿色(色调 = 75/255)和红色(色调 = 15/255)之间?

谢谢!

【问题讨论】:

  • 您想将 0 到 1 之间的值映射到 0.05 到 0.35 之间的值?
  • 不确定你的意思。这些值似乎不匹配......
  • 但总的来说,如果我理解映射的想法,我认为我们在同一页上。
  • 这些大致是你在我脑海中从红色到绿色的价值观。所以mapped = c * ( green - red) + red
  • 啊,好的。我已经在晚上关闭了 MBP,但会在早上试一试。谢谢!

标签: ios uicolor


【解决方案1】:

由于您希望范围在 15/255 到 75 / 255 之间,这意味着如果 c 的值为 0,则色调将为 15/255,如果 c 为 1,则色调为 75/255。

让,

low = 15.f/255.f;
high = 75.f/255.f;

所以,色调应该是,

hue = c* (high - low) + low;

【讨论】:

  • 非常感谢,拉沙德!我会注意到我必须将 15/255 更改为 15.0/255 才能使其正常工作。否则,完美运行!再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多