2014-04-26 150 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進行比較。

相關問題