我是一个项目的一部分,我正在处理管道系统 3D 渲染的选择方法。为了能够选择管道,我的研究表明颜色选择将是最好的方法(由于管道的数量,光线选择可能更困难)。
//define color for pipe
int lowc=0;
int highc=9;
float cB = (rand()%(highc-lowc+1)+lowc)/10.0;
float cG = (rand()%(highc-lowc+1)+lowc)/10.0;
float cR = (rand()%(highc-lowc+1)+lowc)/10.0;
//some way of confirming the complete color combination is unique.
// Create and insert new pipe in a new branch..
Pipe* new_p = new Pipe(new_n1, new_n2, d, wf,cB,cG,cR);
ElementList* new_branch = new ElementList();
new_branch->branch->Append(new_n1);
new_branch->branch->Append(new_p);
new_branch->branch->Append(new_n2);
目前我正在努力找出最有效的方法来检查定义的颜色是否已经存在。存储所有 1000 个当前颜色组合的向量似乎太耗时,因为为每个引用所有其他现有节点颜色值也是如此。是否有更好的解决方案来存储现有颜色的向量(例如 <0.2、0.6、0.4>、<0.8、0.1、0.1> 等)并将其与任何其他现有向量进行比较?