2014-04-26 3 views
0

내가 원하는 것은 채워지지 않은 반원형을 그 위에 만지면 그 위에 포인터를 그립니다 (바로 그 점을 터치했습니다). 나는 거의 모든 것을 할 수있는 지식을 가지고 있지만, 필요한 것은 반원의 중심과 반지름, 그리고 내가 만지고있는 점의 x 좌표와 y 좌표를 반환하는 함수입니다. 점 (x, y)은 원에 속한 점입니다.중심점, 반지름 및 x 좌표로 원점을 생성합니다.

나는 이것을 이미 시도했지만 어색한 결과를 초래합니다.

private int f(int centerX, int centerY, int radius, int touchedX){ 
      int y = -1; 
      if (touchedX>=centerX-radius && touchedX<=centerX+radius) 
       y = (int) (centerY+Math.sin((double) (touchedX-centerX)*radius); 
      return y; 
    } 
내 나쁜 영어 죄송합니다

하고

직교
+0

x 값만 기록하면 서클 내부를 만져보고 위 또는 아래가 아닌지 어떻게 확인할 수 있습니까? –

답변

0

에 의해 정의되는 반경 r의 내점 (x0, y0)을 중심으로 원을 좌표 감사합니다 :

(X - X0)^2 + (Y - Y0)^2 = R^2

당신이 X를 알고있는 경우에 그래서, 당신은 Y에 대한 두 가지 값이 있습니다

Y = Y0 +/- SQRT (R^2 - (X - X0을)^2)

그러나 클릭 한 점이 원에 충분히 가깝다고 가정합니다. 따라서 선택한 y를 원의 y와 비교해야합니다.

관련 문제