자바

2010-05-06 3 views
4

내가 여기에 사용될 수있는 그레이 스케일 컬러 1과 50 사이의 숫자를 변환 할 수있는 방법을 알아 내려고 노력하고있어에서 그레이 스케일 색상에 번호 변환 (흰색) 50은 가장 어둡습니다 (검정색).자바

Color intToCol(int colNum) 
{ 
code here 
} 

의견이 있으십니까? 같은

답변

10

자바는 각 구성 요소 (적색, 녹색, 청색)가 0-255 범위 RGB 색상을 사용합니다. 모든 구성 요소가 동일한 값을 가지면 흰색 검정색 회색이됩니다. 255에 가까운 조합은 흰색이되고 0에 가까울수록 검정이됩니다. 아래의 함수는 칙칙한 색상을 반환하고 입력에 따라 흰색의 크기가 조절됩니다.

Color intToCol(int colNum) 
{ 
    int rgbNum = 255 - (int) ((colNum/50.0)*255.0); 
    return new Color (rgbNum,rgbNum,rgbNum); 
} 
+0

+1은 코드뿐만 아니라 좋은 설명을 제공합니다. – Jonik

8

뭔가 :

float grey = (50 - colNum)/49f; 
return new Color(grey, grey, grey); 
+2

왜 50f 대신 49f로 나눕니 까? –

+1

"1과 50 사이의 숫자를 어떻게 변환 할 수 있습니까?"나는 포함하는 것으로 가정합니다 :'n = 50 '이면'gray = (50-50)/49f = 0.0'; 'n = 1'이면'gray = (50-1)/49f = 1.0'이됩니다. 50이 아닌 49로 나누어야합니다. –