嘿,所有,我正在清理我的代码从以前的学期。创建一个色板库
以前我在C++中创建了一个151颜色色板库。然而,由于我的时间紧迫和缺乏经验,我完全将它作为一个定义语句块来创建。其中,为硬编码值的点工作正常。但是这种方法存在一些明显的弱点。
到目前为止,我所做的是创建一个命名空间'swatch',并且在命名空间内我将有一个枚举有效颜色。我还会有一个'getSwatch'函数或类似的东西,它会返回一个vec3(我的一个类,代表一个3元素的向量,具有一些很好的功能),并且该函数将使用switch语句通过有效的色板。
这将是这个样子:
namespace swatch{
enum color{
red,
blue,
green
}
inline
const vec3 getColor(const color& c){
// Switch and return red blue or green.
}
}
我的问题:我想知道你会如何建议这样做?性能与特点,和可用性的了好处是什么,我最感兴趣的。
在此先感谢朋友,
编码愉快。
编辑:我刚刚改变了这个例子,让那些不知道我如何使用我的vec类的人更有意义。 (即:除我之外的每个人)。另外,你可以看看其他使用者的使用情况。他们对将rgb值传递给构造函数做了一个很好的猜测,那不是我如何做到的,但我仍然可以很好地遵循你的意思。
我不明白你想要做什么。为什么'getColor' *接受*一种颜色,为什么它是一个模板? – Thomas 2010-07-25 19:09:40
对不起,我会解释。 这与vec类有关。 vec类接受一个模板。并且让颜色接受颜色,所以它可以返回以vec表示的颜色。 例如: vec backgroundCol(3); backgroundCol = swatch :: getColor(red); 所以backgroundCol [0]等于1,然后backgroundCol [1]和backgroundCol [2]都等于零。假设每个值为0到1的RGB比例尺。 –
Xoorath
2010-07-25 22:22:12