O que multiplico neste cálculo matricial para configurar minha touchscreen?

O que multiplico neste cálculo matricial para configurar minha touchscreen?

Eu uso 2 monitores (tela sensível ao toque 1920x1080 à esquerda, 1440x900 à direita). Se algum dia eu usar

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

(como valor da matriz)

0.566    0       0
0        0.71111 0
0        0       1

a coordenada x é calculada corretamente, mas a coordenada y deve ser multiplicada por ~ 1,2 para estar correta.

Onde devo colocar meu 1.2?

Responder1

Se quiser dimensionar a coordenada y, você deve multiplicar 0,71111 pelo seu fator de escala 1,2. A fórmula geral é:

se a matriz for

a b c
d e f
g h i

então a fórmula é

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 é uma transformação projetiva. Em quase todos os casos (ou seja, todos os casos, a menos que seu monitor seja um projetor que se projeta distorcido em uma parede), você só precisa de uma transformação linear, então defina g h icomo 0 0 1.

Se você for fazer coisas mais avançadas, então você deve saber que para o propósito deste cálculo, old_x/new_x etc estão no intervalo entre 0 e 1.

informação relacionada