调色板的连续颜色
Continuous color for palette
通常我创建红色,绿色,蓝色的颜色。但是我希望用户仅使用滚轮选择颜色,因此不能让用户指定三个颜色通道。
我有一个可以递增到 256 * 256 * 256 的变量。
但是,如果我使用位移来获取颜色通道,我会突然"跳跃"颜色。
如何以整数的连续调色板的方式获取颜色通道?
我想不出一种直观的方法来做到这一点,因为你有几个不同的自由度可以玩。如果您只想要基色而不是任意 RGB 值,我会使用 HSV 并滚动浏览色调值。
你有一个立方体,你想线性和连续地走过它。
幸运的是,反像不需要连续的!
如果你看这里:http://xkcd.com/195/你会看到一种线性和连续地走过二维空间的方法。 将这种步行更改为三维行走从根本上来说并不棘手。
我们有 2x2 立方体,有 8 个位置,编码为 000 到 111:
000 001
010 011
100 101
110 111
这些是立方体顶部和底部切片的坐标。
我们按以下顺序进行:
1 -> 2
|
V
/-- 4 <- 3
|
| 6 -> 7
| ^ |
| | V
-> 5 8
这导致我们在"远角"退出立方体。
现在,要将立方体的大小在每个维度上增加两倍,只需使用相同的算法取上述 8 个角中的每一个。
8层深,我们正在连续行走一个256 x 256 x 256的立方体。
现在,我在实践中,这可能是一个坏主意 - 但尝试可能会很有趣。 :)
位置的位值有一个相对简单的模式,按顺序排列:
000
001
011
010
110
100
101
111
即,0102101是在坐标中更改的位。
或者另一种看待它的方式是,我们走遍维度的方式是格雷码模式。
相关文章:
- 模板元程序查找相似的连续类型名称
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 如何在内核C++中使用1920x1080x16M图形或类似的16M颜色?(VGA)
- 如何在24位SDL_Surface上设置像素的颜色
- EASTL矢量<向量<int>>连续的
- 当需要超过16GB的连续内存时,内存分配失败
- 如何从SDL_Surface获取特定像素的颜色
- 我应该如何表示我拥有的连续元素序列?
- 蛇在C++不会连续转两次
- 有没有一种优雅而快速的方法来测试整数中的 1 位是否位于连续区域
- 如何知道n!是否可以表示为三个连续数字的乘法?
- 列表视图更改选择颜色
- GtkTreeView 交替行颜色
- 连续枚举 C++11
- 两个连续的 OpenMP 并行区域会相互减慢速度
- 可以将两个相同类型的连续数组视为一个数组吗?
- dx11 渲染到纹理仅显示透明颜色
- 使用 OpenGL 4.5 更改所选顶点的颜色
- 为什么我的 LEGACY OPENGL 颜色反转了?
- 调色板的连续颜色