【我想实现调音量】古剑声音音量对内存数值的函数表达式
这个函数具备以下特征:当x = 25Y = 1048576000
当x = 50Y = 1056964608
当x = 75Y = 1061158912
当x = 100 Y = 1065353216
求Y对X的算术表达式,种类不限,一切从简
=======================
找规律:
变换数值Y(16) 比率V(16进制/100) 音量T(十进制)
0 1000000/100*2^0 100= 100*2^0
-400000 1000000/100*1 75
-800000 1000000/100*2^1 50 = 100*2^(-1)
-C00000 1000000/100*0.5 37.5
-1000000 1000000/100*2^2 25 = 100*2^(-2)
-1400000 1000000/100*0.25 18.25
-1800000 1000000/100*2^3 12.5 = 100*2^(-3)
简化为
C*K 2C/100*2^(-K) 100*2^K
令L = 3F800000C = 800000
则K =+1;V = 2C/100*2^K
那么音量的内存数值 X =Y + L = C*K + (T-100/2^(-K))*V + L
X = C*( +1) + (T-100/2^(-( +1)))*(-2C/100*2^(+1)) + L
好了,这个表达式就算出了,我们来验证一下,当音量T = 18时 内存数值X等于多少?
T=18 =〉K=-2 则 V = 8C/64
(T-100/2^(-K)) =-7
X =Y + L = C*K + (T-100/2^(-K))*V + L
= -2C - 7*8C/64 +L= -1000000 - 47AE14 + L //40是16进制下的
=3F800000 -147AE14= 3E3851EC
这与我查内存得到的毫厘不差http://aurogon.bbs.gamebar.com/attachments/month_1012/20101218_72d686dc5bf78003b980b8S6hFz1X7M0.jpg
所以啊 并不是用一些什么曲线模拟能得出来的
我非常想问COOLJ大人一个问题:为什么你对3F800000如此青睐,时间的函数用到的平移也是它 你这。。。。好高深。。。看不懂。。。 让我想起了前几天在汉化组技术群里提到的浮点..
页:
[1]