c++ - 在圆上给定一个角度找到 RGB 颜色?

标签 c++

<分区>

所以如果我有一个从红色到紫色(0-360)的圆,如果我有一个角度,我能得到一个颜色吗?我一直在搜索,但我只找到了从不同格式转换的代码,与角度无关。我真的很想知道这背后的数学原理。

我正在为我的带有操纵杆和 RGB LED 的 arduino 编写一个 C++ 程序。我已经完成了简单的事情,但我什至不知道从哪里开始颜色。

最佳答案

RGB 颜色空间基于笛卡尔坐标。如果你想要一个角度,这意味着你想要类似于极坐标的东西,你正在寻找的颜色空间是 HSL 或 HSV。

https://en.wikipedia.org/wiki/HSL_and_HSV#From_HSV

在 HSV 中,例如,您可以使用最大饱和度和最大值,然后您只需选择色相(这是一个角度)。

话虽这么说,你也可以组成一个并使用例如:

(R, G, B) = (256*cos(x), 256*cos(x + 120), 256*cos(x - 120))

cos 使用的是度数。

关于c++ - 在圆上给定一个角度找到 RGB 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49584688/

上一篇:C++如何获取名称和大小等文件夹信息

下一篇:c++ - 如何在Ubuntu中使用C++从/dev/xxx路径获取设备的USB VID、PID和序列号

相关文章:

c# - 如何从 .NET 桌面应用程序安装没有 [DefaultInstall] 部分的 INF 驱动程序?

c++ - 如何使用代码块在 mac osx 上清除终端屏幕 c++?

c++ - 在 C++ 中,如果我们不在构造函数中初始化数据成员,它们在类中的值是什么?

带浮点变量的 C++ 递归函数

c++ - 如何将视频帧从 C++ 传递到 chromium 嵌入式框架(cef)?

c++ - 如何拥有自动递增的构建版本号(KDevelop)?

c++ - Qt 连接到 WebSockets 服务器

c++ - 具有 "aggressive"可变语义的 C 和 C++ 编译器

c++ - C++中的大量线程和效率

c++ - Coverity 中溢出的返回值警告