¿Qué multiplico en este cálculo matricial para configurar mi pantalla táctil?

¿Qué multiplico en este cálculo matricial para configurar mi pantalla táctil?

Utilizo 2 pantallas (pantalla táctil de 1920x1080 a la izquierda, 1440x900 a la derecha). Si alguna vez uso

xinput set-prop "Acer T230H" "Coordinate Transformation Matrix" 0.566 0 0 0 .71111 0 0 0 1

(como valor de matriz)

0.566    0       0
0        0.71111 0
0        0       1

la coordenada x se calcula correctamente, pero la coordenada y debe multiplicarse por ~1,2 para que sea correcta.

¿Dónde tengo que colocar mi 1.2?

Respuesta1

Si desea escalar la coordenada y, debe multiplicar 0,71111 por su factor de escala 1,2. La fórmula general es:

si la matriz es

a b c
d e f
g h i

entonces la fórmula es

new_x = (a * old_x + b * old_y + c) / (g * old_x + h * old_y + i)
new_y = (d * old_x + e * old_y + f) / (g * old_x + h * old_y + i)

Esta es una transformación proyectiva. En casi todos los casos (es decir, en todos los casos, a menos que su pantalla sea un proyector que se proyecte oblicuamente en una pared), solo necesita una transformación lineal, por lo que la configura g h ien 0 0 1.

Si alguna vez vas a hacer cosas más avanzadas, entonces debes saber que para el propósito de este cálculo, old_x/new_x, etc. están en el rango entre 0 y 1.

información relacionada