2014-04-26 127 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 +/-开方(R^2 - (X - X0 )^ 2)

但是,这是假设您点击的点距离圆足够近。所以你应该将选定的y与圆上的y进行比较。

相关问题