【杂项】手动进行软件触摸校准,简单的区间映射。
作者:互联网
客户需要,做一下说明,原理如下。
static int map(int x, int in_min, int in_max, int out_min, int out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
若显示屏幕尺寸 x y w h 为 0, 0, 640, 480
而触摸屏幕可能不完全等于显示屏大小,例如可能为 10, 0, 680, 460
假设输入点 X = 320 则可以通过公式 (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min 进行映射
则 in_min, in_min, out_min, out_max = 10, 680, 0, 640 结果为 (320 - 10) * (640 - 0) / (680 - 10) + 0 = 296 。
即可知 触摸屏上的 320 等于实际显示屏上的 296 , 则 Y 轴 同理。
图例如下:
所以你要找到触摸屏的最大/最小值,配合显示屏进行坐标映射。
每次校准后,将其保存,供下次读取即可。
该方法只是线性简单的校准方法,不能很好的表现出触摸屏的特性,如果有更复杂的精度要求,则采用更复杂的公式,依葫芦画瓢即可。
标签:10,映射,min,int,max,校准,320,杂项,out 来源: https://www.cnblogs.com/juwan/p/15102676.html