2

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」がログに記録されていることがわかります。これはバグですか?一般に、色空間と色に関する多くのドキュメントを読みましたが、答えが見つかりませんでした。

4

1 に答える 1

5

色理論では、色相角度単位であり、通常は360を法とする度数 で表されます (と同じです)。360°

NSColorは浮動小数点値0.0および360°にマップされ1.0ます。したがって、両方の値が同じ色相を表すため、の代わりにgetHueを返すことは完全に有効です。1.00.0

于 2011-07-31T08:37:04.333 に答える