Matriz de transformación de Libinput para rotar las coordenadas de entrada

1

Eche un vistazo a la documentación oficial de la matriz de transformación de coordenadas de libinput: https://wayland.freedesktop.org/libinput/doc/1.1.0/group__config.html#ga09a798f58cc601edd2797780096e9804

Cerca del final dice que:

Tenga en cuenta que cualquier rotación requiere un componente de traducción adicional para traducir las coordenadas rotadas nuevamente al espacio original del dispositivo.

Cómo se determinan estos componentes de traducción. La matriz de transformación para rotar las coordenadas 90 grados en sentido antihorario es:

 0  1  0
-1  0  1
 0  0  0

Las coordenadas de traducción en este caso son 0y 1.

saga
fuente

Respuestas:

2

Esto me parece un álgebra lineal lineal. Revisé el enlace para ver de qué estabas hablando. La primera imagen que tienen cuando comienza la página sobre el tema de rotación está llena de cosenos y senos. Lo que hay que tener en cuenta es que cos (a), sin (a), -cos (a), etc. se convierten en 1 y 0 (posiblemente -1 también) cuando se trata de rotación en incrementos de 90 grados. Para mí, esta es realmente una pregunta matemática. Consulte la página de wikipedia sobre Matrices de rotación como referencia: https://en.wikipedia.org/wiki/Rotation_matrix .

Sobre la traducción de vuelta al espacio original; Si el "origen" no está en el centro, la rotación aleja algunos elementos de la posición absoluta original. Este artículo habla más específicamente sobre el mapeo de dispositivos y los gráficos de computadora e incluye información sobre la traducción y también los factores de escala (consulte la sección sobre Transformaciones afines). https://en.wikipedia.org/wiki/Transformation_matrix

Patrick Taylor
fuente