求一个计算RGB颜色值的算法,色差要尽量大,从黑色到白色之间可以计算出来100个以上颜色,尽量用C++
在RGB颜色模型下,要100个颜色设一个变量从0到0x1000000之间分成100 递增即可,颜色差值最大。
用Java applet最简演示,附图。从黑到白100个颜色块
=====
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
public class Test extends Applet{
private static final long serialVersionUID=1802199483736051124L;
public int num_of_colors;
@Override
public void init(){
num_of_colors=100; //如果要多可以设得更多
}
@Override
public void paint(Graphics g){
int row_max=(int) Math.sqrt(num_of_colors);
int col_w=getWidth()/row_max;
int x=0,y=0;
int cd=(int) (0x1000000L/num_of_colors);
int c=0;
for(int n=0;n<num_of_colors;n++){
g.setColor(new Color(c));
g.fillRect(x, y,col_w, col_w);
c+=cd;
if(n%row_max==0 && n>0){
x=0;
y+=col_w;
}else x+=col_w;
}
}
}
颜色差最大的意思是,人眼能够很容易地分别开这100个颜色,像你这样的计算方法我做过实验,颜色会出现很多区分不开的。
谢谢你。
人眼感觉色差大,用假色即可。任何颜色之间插个假色块。视觉反差是最大的。