안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 앱 개발 2년차 넘어갔는데도 이런것에서 잘 해결을 못하겠네요..
matrix.getValues(Matrix변수);
로 해당 메트릭스의 변수값을 가져오면
[]에 9개메트릭스의 배열값이 셋팅이 됩니다.
q = 회전각도
[0] = 원본 이미지의 Width의 배율.(회전 적용시 Cos(q)) 적용됨.
[1] = 회전 시 sin(q)값 적용된다고 알고있습니다.
[2] = X좌표.. 회전시 어떤 공식으로 적용되는지 모르겟네요.
[3] = 회전 시 - sin(q)값 적용된다고 알고있습니다.
[4] = 원본 이미지의 heght의 배율.(회전 적용시 Cos(q)) 적용됨.
[5] = Y좌표.. 회전시 어떤 공식으로 적용되는지 모르겟네요.
2차원이라 변화가 필요없는 값들..6~8
[6] = 0
[7] = 0
[8] = 1
제가 잘못알고 있는것이나 Bold체로적용 된 부분 회전시 어떤 공식으로 값이 변화가 되는지 아시는분들께
조언 좀 부탁드리겠습니다...
행렬은 교환법칙이 성립하지 않습니다. Matrix는 말그대로 행렬인데요.
저 행렬에 기능(회전, 평행이동, 확대)를 어떤순서로 적용하느냐에 따라서 value는 달라집니다.
예를 들어서 100*100짜리 이미지가 0,0(left, top기준)에 있는데
화면 중심을 기준으로 45도 회전하고 아래로 100만큼 이동하는것과
아래로 먼저 100만큼 이동하고 화면 중심을 기준으로 45도 회전하는것은 다릅니다.
matrix에 post... pre... 이런 애들이 괜히 있는게 아니고요... 나중에 적용하느냐 먼저적용하느냐 그런 차이가 있는겁니다.
Matrix의 value들은 어떤 공식으로 떨어진다라고 말하긴 힘들죠... 순서에 따라 다르고 영향을 다 받으니까요.