2011-12-27 2 views
0

다른 토지 패치가 소포 집합으로 구성된 Java로 응용 프로그램을 구축하고 있습니다. 다른 색상의 다른 패치를 색칠하고 싶습니다. 내지도는 패치의 소포를 표시합니다. 그러나 두 패치는 공통적으로 소포를 가질 수 있습니다. 이 경우 중간 색상 (두 가지 색상의 혼합)으로 해당 소포에 색상을 지정하고 싶습니다. 얼마나 많은 패치가 선택 될지 모르겠으므로 루프의 임의의 색상을 지정해야합니다. 그런 다음 교차 된 소포에 대한 색상을 해결해야합니다. 최선의 방법은 자바 에서이 일을하는 방법에 대한 아이디어?자바 색상 할당

답변

1

색상을 혼합하려면 getRed(), getBlue() 또는 getColorComponents()를 통해 개별 R, G, B 값을 가져온 다음 각각에 대해 평균을 취한 다음 새 색상을 만듭니다. HSB 값의 평균을 계산할 수도 있습니다. 알파 (투명도)를 사용하여 각 원본 색상을 알파 0.5로 그릴 수도 있습니다. 그러나 어느 시점에서 이러한 미묘한 혼합은 사용자가 알아 내기가 어려워집니다. 대신 원본 색상으로 일부 패턴 (예 : 줄무늬)을 사용하고자 할 수 있습니다.

나는 "좋은"임의의 색상을 선택하는 많은 방법을 실험했으며 많은 성공을 거두지 못했습니다. 가장 좋은 기술은 HSB 값을 사용했습니다. 5 색이 필요하다고 해봅시다. 360도를 5로 나누고 해당 각도에서 색상환을 '주변'으로 선택하십시오. 이것은 o.k에서 작동합니다. 당신이 정말로 밝은 채색을 좋아한다면.

IMO, 적어도 "가장 일반적인"소포 색상을 잘 보이는 것으로 하드 코딩하는 것을 고려하십시오. 가능한 한 작게 임의로 색상을 선택하십시오.

1

이 문제에 대한 확실한 해결책을 모르겠지만 평균 rgb 구성 요소를 사용할 수 있다고 가정합니다. 예를 들어 RGB 표기법에서 A (100,0,0) 및 B (0,100,0)의 두 가지 색상이 있습니다. 결과 색상은 C (50, 50, 0)입니다.

참고 :이 경우 불변의 "두 동등한 색상 간의 교차점은 같은 색이됩니다"를 저장하십시오.