안드로이드 개발 질문/답변
(글 수 45,052)
예를들어 drawRect을 canvas.rotate()를 사용하여 돌려서 그렸습니다.
onTouchEvent에서 회전된 사각형을 클릭하면 이벤트가 발생하게 하려는데, 회전 전의 사각형 좌표를 터치해야 인식이 되네요...
터치 부분에서 알아서 계산해서 인식되게하는 함수나 방법은 없나요?
직접 sin, cos로 계산해야 하나요?
ㅜㅜ 회전각이 조끔씩 다르게 겁나 많은데... ㅠㅠ
혹시나하고 질문글을 올려 봅니다.
감사합니다.
2011.11.11 14:22:18
아 각도는 모두 함수로 있어서 괜찮은데요.
터치한 좌표가 캔버스가 회전된 좌표를 어떻게 따라가느냐가 문제이거든요...
캔버스를 회전시켰다가 restore 하기전에 그 회전된 절대 좌표를 구하거나 그런 방법은 없을가요...;;
2011.11.11 14:46:47
다 일일이 관리 해야 됩니다. 회전후의 사각형의 범위 같은것은 따로 지원하지 않는 것으로 알고 있습니다.
http://www.androidpub.com/1198436
말씀하신 부분에 대해서는 아주 잘되는 소스까지는 아니더라도 고려는 되어있습니다.




회전각은 atan2로 그냥 뽑을수 있습니다. 중심점에서 x좌표, y좌표만 잡아주시면 잘 나옵니다.
근데 적용하면서 아시겠지만 각이 90도 틀리다던가 이런게 있을수 있는데요.... 그건 해보시면서 보정해보세요..
축때문에 생기는 일인데...