2014-04-14 2 views
2

onTouchEvent에 크기가 조정될 원 모양을 만들려고합니다.사용자 터치 이벤트로 크기를 조정할 수있는 원을 만드는 방법은 무엇입니까?

나는 resizable rectangle 게시물을 따라 갔지만, 수학 지식이 부족하여 크기를 조정할 수있는 원을 만드는 방법이 없다고 생각합니다.

제가

canvas.drawRect(
    left + colorballs.get(0).getWidthOfBall()/2, 
    top + colorballs.get(0).getWidthOfBall()/2, 
    right + colorballs.get(2).getWidthOfBall()/2, 
    bottom + colorballs.get(2).getWidthOfBall()/2, paint); 

canvas.drawCircle() 변경 시도; 그것은 원을 만들지 만 내가 원한 것은 아닙니다.

이 사각형 예제를 크기를 조정할 수있는 원으로 변환하려면 이미 구현 된 점이 무엇인지 또는 어떤 점이 따라야하는지 말해 줄 수 있습니까?

+0

을 ??? –

+0

내 솔루션을 공유하고 싶다면 GoogleMap 용으로 해본 결과 SeekBar을 사용하여 서클 크기를 조정했습니다. –

+0

@SalmanKhan, 아니요. 사용자 지정보기에서 만들려고합니다. –

답변

3

그래서, 원의 중심이 될 것입니다 :

float cx = (left + right)/2f; 
float cy = (top + bottom)/2f; 

- 아주 명백한. 반경 Math.hypot()을 사용하여 계산 될 수있다 :

float radius = Math.hypot(top - bottom, right - left)/2f; 

을 따라서, 우리는 중심과 반경 원을 그릴 수있다 : 당신은지도에 그리는

drawCircle(cx, cy, radius, paint); 
+0

고마워요. –

관련 문제