如何制作一个从0-50开始浮动的方法,并给出一个均匀强度的绿色?
因此,如果输入值为0,则颜色为黑色:
[UIColor colorWithRed:0 green:0 blue:0];
如果输入值为50,则颜色为最大绿色:
[UIColor colorWithRed:0 green:255.0/255.0 blue:0];
因此,如果输入因子位于中间位置,那么颜色应该位于中间的某个位置。所以从0到50,它应该从最暗的绿色变为最轻的绿色。应该很简单,但我不确定我缺少什么:
//factor is a float from 0-50
UIColor *greenColor = [UIColor colorWithRed:0 green:factor/255.0 blue:0 alpha:1.0];
此代码生成绿色,但波动不大,因此您只能看到一个绿色阴影。
答案 0 :(得分:3)
您需要根据自己的最大值(50)缩放RGB最大值(255)。而你所需要的只是相当简单的数学:
colorVal = 255 * x / 50
其中x
是0到50范围内的整数。所以:
255 * 0 / 50 = 0
255 * 50 / 50 = 255
255 * 25 / 50 = 128 (rounded up from 127.5)
答案 1 :(得分:1)
您的范围仅来自0.0/255.0 -> 50.0/255.0
,您希望它是0.0 to 1.0
;为此你可以尝试factor/50.0
。
答案 2 :(得分:1)
首先,你的数学太难了。看起来[UIColor ... green: ...]
值的范围应为0.0到1.0,因此值计算可能只是:
CGFLoat value = factor / 50.0;
UIColor *greenColor = [UIColor colorWithRed:0 green:(value) blue:0 alpha:1]
factor = 0
时的值为0.0,factor = 50
时的值为1.0。
除此之外,我不确定 - 也许实际上绘图会进行一些量化还是使用有限的调色板?