2011-05-02 12 views
0

서문 : 숙제가 아닙니다. 아주 오래된 게임을위한 오픈 소스 엔진을 개발 중이며 이상한 방식으로 값을 처리합니다.숫자 변환 공식을 찾는 방법은 무엇입니까? 수학!

예를 들어 색상을 사용하면 RGB 값으로 0-255 사이의 값을 사용합니다. 충분히 간단합니다. 그러나 번역 할 때 매우 다른 방식으로 사용하는 것 같습니다. 예를 들어 이전 클라이언트 값은 각각 '230', '255', '200'의 RGB 값을 사용합니다. 그러나 그 값은 137, 151, 118입니다. 이전 스크린 샷을 샘플링하여이를 발견했습니다. 클라이언트가이 값을 변환 할 때 사용하는 공식을 어떻게 알 수 있습니까?

내 질문 :이 값을 변환하는 데 적용 할 수있는 수식이 있습니까?

감사합니다.

+0

8 진수라고 추측했지만 체크 아웃하지 않습니다. 8 진수는 211, 227, 166 ... 흠 ... –

+3

에 더 많은 데이터가 필요합니다. 아마 몇 가지 더 오래된/새로운 세 쌍둥이? – Peter

+0

이전 소프트웨어의 소스가 있다고 가정하지 마십시오. 또는 공유 할 수있는 exe 인 경우 (무료 게임 인 경우)? 아니면 오래된 게임의 이름일까요? –

답변

4

related question A로부터 :이 경우

NewValue = (((OldValue - OldMin) * (NewMax - NewMin))/(OldMax - OldMin)) + NewMin 

, OldMin 및 NewMin은 0이다. NewMax 151과 152 사이의 일이며, OldMax 당신은 단순화 할 수 있습니다, 따라서 255 :

NewValue = (OldValue * NewMax)/OldMax 

정도

NewValue = (OldValue * 151)/255 

:

230 * 151/255 = 136.19 (pretty close) 
255 * 151/255 = 151 
200 * 151/255 = 118.43 (pretty close) 

것은 될 것 같지 않습니다를 꽤 정확한,하지만 당신에게 충분히 가깝습니까? 아마도 반올림 오류가 발생했을 것입니다.

관련 문제