1、
如上图,假如底下是LCD,上面是触摸屏膜(TS)。假设分辨率是480*272,那么在LCD坐标为(0,0)的地方,TS对应的点坐标为(x1',y1')。LCD坐标为(479,271)的地方,TS对应的点为(x2',y2')。
那么,假如触电的坐标为(x',y'),对应的LCD的点坐标呢?
2、
为了简化,我们先看x轴的坐标:
由上图我们可以得到一个等式,
(x' - x1')/(x2' - x1') = (x - 0)/(479 - 0)
x = (479 - 0)*(x' - x1')/(x2' - x1')
3、
但是上面的图,我们是选择了(0,0)和(479,271)这种边界点,一般这种点我们都点不准,所以下面我们选择一般的点。
(x' - x1')/(x2' - x1') = (x - x1)/(x2 - x1)
x = (x2 - x1)*(x' - x1')/(x2' - x1') + x1
假设 k = (x2 - x1)*(x' - x1'),
所以
x = k * (x' - x1') + x1
4、
X轴方向:
Kx = (s1 + s2) / (s1' + s2') = 2s / (s1' + s2') ----------- (假设的s1 = s2)
Y轴方向:
Ky = (d1 + d2) / (d1' + d2') = 2d / (d1' + d2') ---------- (假设d1 = d2)
选取TS中心点的坐标为(xc', yc'),LCD中心点的坐标为(xc,yc)
那么就可以由TS点击的点得到LCD上对应的点坐标,
x = (x' - xc')*Kx + xc
y = (y' - yc')*Ky + yc
参考文章:
https://blog.csdn.net/DevinTT/article/details/47022761