NSColor 及其色调组件
Posted
技术标签:
【中文标题】NSColor 及其色调组件【英文标题】:NSColor and its hue component 【发布时间】:2011-07-31 08:28:41 【问题描述】:我不太明白为什么 NSColor 的色调组件的行为与它的行为一样。有点奇怪:
NSColor *c = [NSColor colorWithCalibratedHue:0.1
saturation:1.0
brightness:1.0
alpha:1.0];
CGFloat hue = 0.0;
[c getHue:&hue saturation:NULL brightness:NULL alpha:NULL];
NSLog(@"hue = %f", hue);
如果您运行此代码,您会看到正在记录“hue = 0.1”。但是如果你运行下面的代码:
NSColor *c = [NSColor colorWithCalibratedHue:0.0
saturation:1.0
brightness:1.0
alpha:1.0];
CGFloat hue = 0.0;
[c getHue:&hue saturation:NULL brightness:NULL alpha:NULL];
NSLog(@"hue = %f", hue);
您会看到正在记录“hue = 1.0”。这是一个错误吗?我阅读了很多关于色彩空间和一般颜色的文档,但找不到答案。
【问题讨论】:
【参考方案1】:在色彩理论中,hue 是一个angular unit,通常用degrees modulo 360 表示(0°
与360°
相同)。
NSColor
将 0°
映射到浮点值 0.0
和 360°
到 1.0
。因此,getHue
返回 1.0
而不是 0.0
是完全有效的,因为这两个值代表相同的色调。
【讨论】:
我知道色调是一个角度单位 - 但我没有想到 360° 与 0° 相同,尽管它应该很明显。谢谢你指出来。 :)以上是关于NSColor 及其色调组件的主要内容,如果未能解决你的问题,请参考以下文章