2011-05-02 59 views
0

前言:不做作業。我正在爲一款非常古老的遊戲開發一款開源引擎,並且它們以奇怪的方式處理值。如何找到數字轉換的公式?數學!

例如,使用顏色,它們從RGB值取0-255的值。夠簡單。但是,當他們翻譯它們時,它們看起來非常不同。例如,舊的客戶端將分別採用RGB值「230」,「255」,「200」。但是,這些值應該是137,151,118。我通過抽取舊屏幕截圖找到了這些值。如何找出客戶在翻譯這些值時使用的公式?

我的問題:是否有一個公式可以應用於轉換這些值?

謝謝!

+0

我猜想八進制,但它沒有檢查出來:八進制會產生211,227,166 ...... HMM – 2011-05-02 22:40:22

+3

需要更多的數據。也許還有幾個舊的/新的三胞胎? – Peter 2011-05-02 22:42:35

+0

不要以爲你有舊軟件的來源?或者你可以分享的exe文件(如果它是免費遊戲)?甚至是老遊戲的名字? – 2011-05-02 22:44:27

回答

4

related question

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

在這種情況下,OldMin和NewMin爲零。 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) 

這似乎並沒有被相當確切,但對你來說足夠接近了嗎?也許我們看到一些舍入錯誤?