我不太理解为什么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“被记录下来。这是一个bug吗?我阅读了很多关于色彩空间和色彩的文档,但找不到答案。
发布于 2011-07-31 16:37:04
在颜色理论中,hue是一种angular unit,通常以degrees modulo 360表示(0°与360°相同)。
NSColor将0°映射为浮点值0.0,将360°映射为1.0。因此,getHue返回1.0而不是0.0是完全有效的,因为这两个值表示相同的色调。
https://stackoverflow.com/questions/6888363
复制相似问题