안녕하세요..
커스텀 뷰를 만들고있는데요..
만약 네모칸이 있을 때, 네모안에 좌표가 터치가 되었는 지를 확인할 때는 Rect에 contains() 를 써서 확인 할수가 있는데..
원호같은경우는 어떻게 체크해야할까요?
Rect에는 .contains()가 있는데, ArcShape에는 contains()가 없더라구요..
그림처럼 원을 10등분해서 피자조각처럼 나누고, 원호 10개중에 어떤 원호에 좌표가 터치됐는지에 따라서 원호 배경색을 변경하고싶거든요..
contains가 없으면 어떻게 처리를 할수가있을까요?;
좀도와주세요~!
2단계로 체크 해야 될거 같네요 우선
1. 원의 원점과 체크하고자 하는 좌표의 길이를 재서 원의 반지름보다 작은지 알아 낸다음
반지름 = Math.sqrt(Math.pow(x - centerX, 2), Math.pow(y - centerY, 2));
2. 원점과 체크하고자 하는 좌표를 바탕으로 아크탄젠트 메서드를 써서 각도를 구해서 저 부채꼴의 각도 안에 속하는지 알아보면 될거 같습니다.
라디언값 - Math.atan((y - centerY) / (x - centerX))
컴퓨터 좌표와 데카르트 좌표계와는 다르기 때문에 (y축이 반대로) 그것만 고려해서 해주신 다면 구할 수 있을거 같네요