Objective c UIColor与标准RGB颜色控制盘不匹配?

Objective c UIColor与标准RGB颜色控制盘不匹配?,objective-c,cocoa-touch,ios,uicolor,hsb,Objective C,Cocoa Touch,Ios,Uicolor,Hsb,UIColor中的色调与标准RGB色轮不同。我的意思是,色轮上的两种相反颜色将匹配(即黄色和紫色),但如果在UIColor中使用两种相反的颜色,例如: 颜色1:色调0.45 颜色2:色调0.95 他们不匹配。有没有办法通过UIColor在光谱中找到相反的颜色?我不是很久以前就知道了。它的要点是有很多不同的颜色模型。即使在你的问题中,你似乎也在考虑两种不同的模式:黄色和紫色在红-黄-蓝模式中可能是互补的,但在红-绿-蓝模式中却不是如此。车轮上的颜色彼此相对,通常不称为“匹配”,它们被称为“互补”,

UIColor
中的色调与标准RGB色轮不同。我的意思是,色轮上的两种相反颜色将匹配(即黄色和紫色),但如果在
UIColor
中使用两种相反的颜色,例如:

颜色1:色调0.45
颜色2:色调0.95


他们不匹配。有没有办法通过
UIColor
在光谱中找到相反的颜色?

我不是很久以前就知道了。它的要点是有很多不同的颜色模型。即使在你的问题中,你似乎也在考虑两种不同的模式:黄色和紫色在红-黄-蓝模式中可能是互补的,但在红-绿-蓝模式中却不是如此。

车轮上的颜色彼此相对,通常不称为“匹配”,它们被称为“互补”,例如,如果你将它们混合在一起,就会得到白色(如果使用减色,也可以使用黑色,例如颜料)

RGB并不是一个真正的彩色“轮子”--它更像是一个立方体形状。然而,中的色调通常表示为一个角度,从0˚到360˚,红色表示为0˚,绿松石表示为180˚。如果从任何一个开始取180˚的值,则得到补码:红色0˚/绿松石180˚,绿色120˚/紫色300˚,等等。编程时,色调的范围通常写为分数介于0和1之间(包括0和1)。在该方案中,您可以

fmod(val - 0.5, 1.0)
得到补码

你没有说你期望得到什么结果,也没有说你得到了什么结果,所以很难具体说出来,但是0.95和0.45确实是互补的,当我用这些值创建
UIColor
s时,我看到了预期的红色和绿松石色


电脑屏幕上的颜色与油漆的颜色表现不同,因为在第一种情况下,你会得到结果,而在第二种情况下,你会得到结果。这可能是你困惑的根源。红色加黄色等于颜料的橙色,但红色加绿色等于光线的黄色。

可能的重复我想知道是否有获得匹配良好颜色的方法。在常规RGB色轮中,相对侧的颜色匹配,但在HSB中,相对值的颜色不匹配。