Libinput matriz de transformação para rotacionar as coordenadas de entrada

0

Dê uma olhada na documentação oficial da matriz de transformação de coordenadas do libinput: link

Perto do final, afirma que:

Note that any rotation requires an additional translation component to translate the rotated coordinates back into the original device space.

Como esses componentes de tradução são determinados. A matriz de transformação para girar as coordenadas 90 graus no sentido anti-horário é:

 0  1  0
-1  0  1
 0  0  0

As coordenadas de tradução, neste caso, são 0 e 1 .

    
por saga 12.09.2018 / 14:41

1 resposta

2

Isso parece uma álgebra linear direta para mim. Eu verifiquei o link para ver o que você estava falando. A primeira imagem que eles têm quando a página começa sobre o tema da rotação é preenchida com cossenos e senos. A coisa a perceber é que cos (a), sen (a), -cos (a) etc se tornam 1 e 0 (possivelmente -1 também) quando você está lidando com rotação em incrementos de 90 graus. Para mim, isso é realmente uma questão de matemática. Confira a página da Wikipedia em Matrizes de rotação como ref: link .

Sobre a tradução de volta ao espaço original; se a "origem" não estiver no centro, a rotação move alguns elementos para longe da posição absoluta original. Este artigo fala mais especificamente sobre mapeamento de dispositivos e computação gráfica e inclui informações sobre a conversão e também sobre fatores de escala (consulte a seção sobre transformações afins). link

    
por 21.09.2018 / 08:06