当前位置: 代码迷 >> VC/MFC >> 求反比例算法。越近越大,越远越小
  详细解决方案

求反比例算法。越近越大,越远越小

热度:101   发布时间:2016-05-02 03:34:06.0
求反比算法。越近越大,越远越小
比如实物10米的时候就在屏幕上显示宽度1440(1440*900),离得越远就越小,

如输入的是5000米,那么就在屏幕中显示1*1的像素点,

当然也可以设置5米为屏幕的最宽1000就显示成1*1的一个像素点这么小,

需要知道的这个比例怎么计算,

10米的时候对应的电脑像素点是多大。

500米的时候对应的电脑像素点是多大。

已知假设的条例是
10米 对应1440像素

5000米应用的是1像素


10---1440  已知
20--------?
2512----?
5000----1  已知

 
------解决思路----------------------
正常来说, 视觉大小是跟距离反比的
就是一个等比三角形

10---1440  已知
20---  应该为  1440 * 10 /20 = 720



当然你也不用这个视觉的方式可以用插值, 比如
10---1440  已知
5000----1  已知

y = ax + b

10, 1440
5000, 1  用 数值带入, 得到
a, b 为: -0.288377, 1442.883768, 用这个公式得到大小




------解决思路----------------------
500米你还能看的清楚,那你是神眼了
------解决思路----------------------
又是一个线性插值。。。
y =( y0*(x1-x) + y1*(x-x0))/(x1-x0);

10---1440  已知  10:x0     1440:y0
20--------? 20:x  ,求y 
2512----?
5000----1  已知  5000:x1   1:y1
代入上式即可
不要用ax+b   多了2次 浮点计算误差
------解决思路----------------------
比较自由的办法就是  测试大量的远近缩放的对应数据,然后找一个公式拟合软件 用这些数据拟合出一个公式 在程序中使用
  相关解决方案