嘿,所有,我正在清理我的代碼從以前的學期。創建一個色板庫
以前我在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