2012-02-13 2 views
3

시간의 흐름에 따라 일련의 요소를 나타낼 필요가 있습니다. 디자인 목적을 위해 각각의 색상은 각 색상을 쉽게 식별 할 수 있도록 색상이 있어야합니다. 요점은 그들 사이의 색상의 차이가 인간에 의해 인식 할 수없는 경우 각 elemnt는 아무 의미가 없다는 것입니다.자바 색상의 해시 함수

요소에있는 유일한 고정 속성은 ID입니다. 이 ID는 하나의 요소에서 다른 요소로 하나씩 달라 지도록 제시되어 있지만 이는 분명하지 않습니다.

숫자 ID를 기반으로하는 해시 함수는 이전 ID와 다음 ID가 인 이 다른 16 진수 (예 : # f62035 웹 형식)를 반환합니다. 또한, 요소가 표시되는 배경이 검은 색이므로 HEX 색이 너무 어둡지 않아야합니다.


예 : 다른 100 말과

Element ID: 12 
Element ID: 13 

hash(12) = #f46600 
hash(13) = #5aa9aa 
+0

당신은이 솔루션을 조정할 수 있습니다에 대한 목록을 만듭니다 : HTTP : //stackoverflow.com/questions/4246351/creating-random-colour-in-java –

+0

@JonLin 내 마지막 옵션입니다. 색상을 DB에 저장할 수 없기 때문에 다른 실행에서는 같은 색상이어야하지만 감사합니다. ;) – eversor

+1

@eversor 무작위로 생성 할 때 알려진 시드 (예 : 12345L)를 사용하면 이와 같은 문제를 피할 수 있습니다. 그런 다음 동일한 순서로 (정확히) 동일한 작업을 수행하면 동일한 결과가 나타납니다. –

답변

2

IMHO, 당신이 필요로하는 것 얼마나 많은 다른 색상 depeding, 나는, 당신의 최선의 솔루션을 사용하는 색상의 목록을 작성하는 것입니다 생각 색상의 변형 및 사용 순서에 따라 정렬 할 수 있습니다. 그런 다음이 목록의 색상을 순서대로 지정하여 색상으로 사용할 수 있습니다. 목록의 끝에 도달하면 다시 시작할 수 있습니다.

이 솔루션은 확장 성이 없지만 사용자가 디자인이 다르다고 말할 수있는 색상이 거의 없음을 명심해야합니다.

어쩌면 당신은 색상 선택기를 swhows 다른 자바 응용 프로그램을 작성할 수 있습니다,이 목록을 만들려면, 그래서 당신은 색상을 선택할 수 있으며, 코드는

+2

이것을 정확한 해결책으로 바꿀 수 있습니다. 위와 같이 수동으로 또는 무작위로 색상 목록을 작성하고 목록의 색상을 선택하기 위해 (전통 해시 코드) mod (목록의 길이)를 사용하십시오. –