ios - 如何获得 "rotate"一种颜色的色调?

标签 ios swift colors uicolor

我想生成与给定的 UIColor(三色、类似物、补色等)相得益彰的颜色。

我已经阅读了很多帖子,例如 thisthisthis .在上一篇文章中,回答者建议去 easyrgb.com。 所以我去了那里。我了解到,如果我想生成这些配色方案,我需要将色调“旋转”一定程度。例如,对于三元色,我需要将其旋转 ± 120 度。

我知道我可以通过调用 getHue(:saturation:brightness:) 获得颜色的色调,但我如何“旋转”它?方法返回的色调不是数字吗? 0 到 1 之间的数字?这对我来说毫无意义!

我认为第一篇文章可能有答案,但代码是用 python 编写的。我只学了一点 python,所以我不太明白这是什么意思:

h = [(h+d) % 1 for d in (-d, d)]           # Rotation by d

从评论中,我看到这条线以某种方式将色调旋转了 d 度。但是我不知道那个语法是什么意思。

谁能告诉我如何旋转色调,或者将上面的代码翻译成 swift?

最佳答案

色调分量的范围从 0.0 到 1.0,对应于色轮中从 0º 到 360º 的角度(比较 Wikipedia: HSL and HSV )。

要将色调组件“旋转”n 度,请使用:

let n = 120 // 120 degrees as an example
hue = fmod(hue + CGFloat(n)/360.0, 1.0)

fmod() 函数用于规范化的结果 添加到范围 0.0 到 1.0。

互补色的色调是

let hueComplement = fmod(hue + 0.5, 1.0)

关于ios - 如何获得 "rotate"一种颜色的色调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36306938/

相关文章:

iOS13 Safari WebSpeechApi 错误 : SpeechSynthesisUtterance won't use provided locale

swift - 以编程方式添加负约束

r - 更改文本注释的背景颜色以增加对比度和可见性

ios - 我们可以避免在 Safari 中打开应用程序时出现 webView 内存问题吗?

Android 颜色转换 setColorFilter

python - 来自 tab10 的 matplotlib 通用颜色图

ios - 使用 mdm 设置墙纸

ios - 换屏后如何继续导航 - Skobbler

ios - Xcode Crash IOS APP:dyld:未加载库,原因:未找到图像

ios - 静态 NSDate 变量在函数调用之间不断重置