為了方便調色,特用processing代碼畫個可視顏色色譜圖玩玩。
processing源碼:
int r=200;
color c ;
private final int COPIES = 12;
PImage img;
void setup(){
size(displayWidth,displayHeight);
background(255);
stroke(255);
strokeWeight(2);
PFont myfont = createFont("KaiTi_GB2312-80.vlw",40);
textFont(myfont);
fill(0, 102, 153, 204);
text("XXX印花調色色譜圖",110,80);
text("XXX印花單色圖",width/2+120,80);
img = loadImage("color.png");
noLoop();
}
void draw(){
translate(width/2,height/2-180);
//draw color circle
for(int a=0;a<COPIES;a++){
line(300-width/2,0,300-width/2+r*sin(a*TWO_PI/COPIES),r*cos(a*TWO_PI/COPIES));
textSize(20);
switch(a){
case 0: //8111
c = #E80C0C;
fill(c);
text("8111",300-width/2+(r+5)*sin((-a+3.5)*TWO_PI/COPIES),(r+5)*cos((-a+3.5)*TWO_PI/COPIES));
//標注顏料名稱
text("8111",-20,-170+70*a);
break;
case 1: //8113
c = #FF0381;
fill(c);
text("8113",300-width/2+(r+5)*sin((-a+3.5)*TWO_PI/COPIES),(r+5)*cos((-a+3.5)*TWO_PI/COPIES));
text("8113",-20,-170+70*a);
break;
case 2: //8116
c = #FF00DE;
fill(c);
text("8116",300-width/2+(r+15)*sin((-a+3.5)*TWO_PI/COPIES),(r+15)*cos((-a+3.5)*TWO_PI/COPIES));
text("8116",-20,-170+70*a);
break;
case 3: //8118
c = #D800CB;
fill(c);
text("8118",300-width/2+(r+20)*sin((-a+3.5)*TWO_PI/COPIES),(r+20)*cos((-a+3.5)*TWO_PI/COPIES));
text("8118",-20,-170+70*a);
break;
case 4: //8701
c = #C300FF;
fill(c);
text("8701",300-width/2+(r+30)*sin((-a+3.2)*TWO_PI/COPIES),(r+30)*cos((-a+3.2)*TWO_PI/COPIES));
text("8701",-20,-170+70*a);
break;
case 5: //8304
c = #561FF0;
fill(c);
text("8304",300-width/2+(r+45)*sin((-a+3.5)*TWO_PI/COPIES),(r+45)*cos((-a+3.5)*TWO_PI/COPIES));
text("8304",-20,-170+70*a);
break;
case 6: //8301
c = #366AFF;
fill(c);
text("8301",300-width/2+(r+50)*sin((-a+3.5)*TWO_PI/COPIES),(r+50)*cos((-a+3.5)*TWO_PI/COPIES));
text("8301",-20,-170+70*a);
break;
case 7: //8303
c = #03B9FF;
fill(c);
text("8303",300-width/2+(r+45)*sin((-a+3.6)*TWO_PI/COPIES),(r+45)*cos((-a+3.6)*TWO_PI/COPIES));
text("8303",-20,-170+70*a);
break;
case 8: //8601
c = #00FF30;
fill(c);
text("8601",300-width/2+(r+45)*sin((-a+3.9)*TWO_PI/COPIES),(r+45)*cos((-a+3.9)*TWO_PI/COPIES));
text("8601",-20,-170+70*a);
break;
case 9: //8202
c = #F6FF00;
fill(c);
text("8202",300-width/2+(r+18)*sin((-a+3.8)*TWO_PI/COPIES),(r+18)*cos((-a+3.8)*TWO_PI/COPIES));
text("8202",-20,-170+70*a);
break;
case 10: //8204
c = #FFEA00;
fill(c);
text("8204",300-width/2+(r+18)*sin((-a+3.8)*TWO_PI/COPIES),(r+18)*cos((-a+3.8)*TWO_PI/COPIES));
text("204",-20,-170+70*a);
break;
case 11: //8206
c = #FF5F03;
fill(c);
text("8206",300-width/2+(r+18)*sin((-a+3.3)*TWO_PI/COPIES),(r+18)*cos((-a+3.3)*TWO_PI/COPIES));
text("8206",-20,-170+70*a);
break;
}
arc(300-width/2,0,2*r,2*r,(a-1)*TWO_PI/COPIES,a*TWO_PI/COPIES,PIE);
// noFill();
int k = (c >>24) & 0xFF;
int r = (c >>16) & 0xFF;
int g = (c >>8) & 0xFF;
int b = c & 0xFF;
for(int p=0;p<8;p++){
fill(r,g,b,k-30*p);
// rect(-600+p*50,250+50*a,40,40);
rect(50+70*p,-200+70*a,50,50);
}
}
/*
//draw color windows
for(int m=0;m<12;m++){
for(int n=0;n<12;n++){
for(int j=0;j<12;j++){
//color red
fill(15+20*j,15+20*n,15+20*12);
rect(50+70*j,-200+70*n,50,50);
}
}
}
*/
//draw black and white color
for(int t=0;t<9;t++){
fill(30*t);
rect(-580 + 60*t,300,50,50);
}
fill(0);
text("8501",-630,330);
//draw three rgb circle
image(img,-520,380,400,250);
//saveFrame("d:/0.jpg");
}
運行效果顯示:
|