【发布时间】:2015-10-04 07:22:12
【问题描述】:
我想为二维网格中的 k 个点簇着色。现在我使用的是一种幼稚的方法。
我是用RGB来设置颜色的,G分量是固定的,R是逐渐倒数的,B是逐渐递增的。所以第一个集群的 R 设置为 255,最后一个集群设置为 0,B 反之亦然。
int r = 255, g = 80, b = 0;
// do stuff
int step = 255 / k;
// loop over data
int cluster = getCurrentCluster();
int currentR = r - (cluster * step);
int currentG = g;
int currentB = b + (cluster * step);
当前的解决方案是有效的。可以通过颜色来区分集群
但我不喜欢它,我更喜欢彩虹色或至少更丰富的光谱。
我怎样才能做到这一点?如何将区间 [0, k) 中的整数映射到符合我要求的颜色?
我想到的另一种方法是将整数映射到给定间隔内的波长,例如400 nm 到 800 nm(如果我没记错的话,大概应该是彩虹光谱)并将波长转换为 RGB。
【问题讨论】:
-
R、G 和 B 的 3 种不同噪声函数怎么样?
-
我不认为代码在某个地方可供我们使用?
-
@TartanLlama 嗯,不确定。这是一个讲座的作业,也有在 GPU 上运行的组件。我会问我是否可以发布它,也许只有CPU的东西
-
@Brett Sry,您能详细说明一下吗?我不太明白这将如何导致彩虹光谱。
-
@mike 抱歉,它不会提供彩虹光谱,但它至少应该提供更丰富的光谱,因为您将为所有 3 个颜色分量生成值