2011-01-20 5 views
6

주어진 두 값 사이의 색 퍼센트 값을 결정하는 가장 좋은 방법은 무엇입니까? 즉, 색상 C의 % 위치를 계산하는 가장 좋은 방법은 무엇입니까?두 가지 알려진 색상 사이의 색 퍼센트 값 찾기

색상 A - 0x0000FF 등 컬러 B - 0x00CCFF 색상 C - 0x00FFFF

감사합니다!

+0

이 또한 있습니다. https://code.google.com/p/mojocolors/ – Daniel

답변

6

색상을 양자화하기로 결정한 방법에 따라 다르므로 잘 맞지 않습니다.

내 의견으로는 더 정확한 방법 인 HSB를 통해 수행 할 수 있지만 (사실은 아니더라도) 16 진수 값을 사용하십시오. 빠른

그것이 hax를 사용하여 값 할 아마도

var colour:uint = 0x9900CC; 
var r:uint = colour >> 16; 
var g:uint = colour >> 8 & 0xFF; 
var b:uint = colour & 0xFF; 
당신에게 각 채널 (C)

는 각각 수학을 (ABC가 색상 인)의 값을 줄 것이다

.this 채널 (C) 당신이이 chanels의 각을 일단 다음

(cB - cA)/(cC - cA) 

, 당신은 3

에 의해 함께 추가하고 나눌 수 있습니다

그러나 한 가지 문제가 있습니다. 색상 A와 C가 모든 채널에서 동일하면 예외를 추가해야합니다 (cC와 CA가 0이고 0으로 나눌 수 없기 때문에). 그 차이를 처리하는 방법을 결정할 수 있습니다.

+0

에 감사 할 가치가 있습니다. Daniel에게 감사드립니다.이 기능은 완벽하게 작동했습니다. – Andrei

+1

나는 HSL, HSL 또는 다른 원통형 컬러 시스템 중 하나를 사용하여 확실히 시도 할 것입니다. 응용 프로그램에 따라 더 나은 (또는 의미있는) 결과를 얻을 수 있습니다. – mpdonadio

+0

아직도 두 숫자가 같고 숫자가 다른 경우를 다루는 가장 적합한 방법은 무엇인지 궁금합니다. 수학적으로 차이는 무한대입니다. 이것은 HSV (HSB, HSL) – Daniel

관련 문제