做一个化工染料的系统,要求将两种颜色按比例混合后得出一种颜色,如:
20%红+80%兰=???
如何用DELPHI语言解出来!我已经尝试以下代码,但感觉不像是答案:
  panel1.Color:=20*panel2.Color+80*panel3.Color;
//panel2.color设置为红色,panel3.color设置为兰色因为道理上说20%红+80%红应该是红,但结果却不是红色!而是$0000639C怎么办!好难啊!!!!

解决方案 »

  1.   

    这个问题也不是很难,因为RGB颜色是0-255。我们把它分为1/255,那%1就为100/255,那么颜色的20%就是20*100/255,再用RGBtocolor()函数。
    有问题,请与我联系,我的QQ是44981910,EMAIL:[email protected]
      

  2.   

    再可取得红绿兰,三个颜色,再把三个颜色的百分比就可以了
    r := getrvalue(colortorgb());
    g := getgvalue(colortorgb());
    b := getbvalue(colortorgb());
      

  3.   

    先要将颜色值分解成三个分量:R、G、B,然后再用rgb函数计算最终颜色,如:
    color:=rgb(round(255*0.2),0,round(255*0.8));
    将颜色分解的算法如下:b:=(color and $ff0000) shr 16;
    g:=(color and $ff00) shr 8;
    r:=(color and $ff);
      

  4.   

    20红加80蓝就应该是R:51,G:0,B:204;有什么公式可言?直接用个panelshow给老板看;
    我估计老板说的可能还是CMYK色彩域,不是RGB,那样就头大了 。
    如果是两种墨水掺一块,找实验册去吧,delphi是不能直接搞定的。
      

  5.   

    染料属于减色原理的CMYK色系,RGB属于加色原理色系,别瞎折腾了。你先在CMYK色系坐标空间做完处理然后再翻转到RGB空间显示吧。