2012-06-22 2 views
0

이 튜토리얼을 사용하고 있습니다 : http://mobile.tutsplus.com/tutorials/android/android-sdk-creating-a-rotating-dialer/ 이미지보기를 기준으로 회전하는 다이얼러를 제공합니다. 그러나 나는 기능을 추가하여 그것을 확장하려고합니다. 그러나이 기능을 추가하려면 현재 클릭 한 위치를 가져와야합니다. 그러나 rotationMatrix를 사용하여 이미지 뷰를 회전하므로 사용자가 클릭하는 위치를 분석 할 수있는 단일 위치를 얻을 수 없습니다. 회전 행렬에있는 9 개의 값을 사용자가 접촉하는 위치를 나타내는 하나의 변수로 바꿀 수 있습니까?RotationMatrix.getValues ​​()에서 단일 변수 또는 각도 회전 가져 오기

답변

0

이것은 안드로이드 질문보다 컴퓨터 그래픽 질문입니다. homogeneous coordinates 사용하여, 기원에 대한 시계 방향 회전은 (내가 이것을 표현하기 위해 여기 옥타브/MATLAB 표기법을 사용하고 있습니다)로 표현 될 것이다 :

rotationMatrix = [ cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1 ] 

행렬은 단지 기원에 대한 회전을하고 있다고 가정하면, 당신은 할 수 있습니다 java.lang.Math.acos을 호출하고 Matrix.getValues에 의해 반환 된 배열의 첫 번째 값을 전달하여 theta를 가져옵니다. 이 값은 라디안 단위이므로 학위를 원하면 convert이 필요합니다.

OTOH, 무엇을하고 있느냐에 따라 Matrix.invert을 호출하여 역 좌표를 얻고 그 역함수가인 터치 좌표를 포함하는 점에 변환을 "실행 취소"할 수 있습니다.

+0

당신의 OTOH 코멘트는 내가 필요한 감사입니다! – user1475036