我想要做的是绘制一个未填充的半圆,并在我触摸它时绘制一个指针(在我触摸它的那一点上)。我知道要做几乎所有这些,但我需要的是一个函数,它取半个圆的中心和半径以及我正在触摸的点的x坐标并返回一个y坐标,这样point(x,y)是属于圆的点。
我已经尝试过了,但这会导致尴尬的结果。
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 :(得分:0)
在笛卡尔坐标系中,以半径r的(x0,y0)为中心的圆由下式定义:
(x-x0)^ 2 +(y-y0)^ 2 = r ^ 2
所以,如果你知道x,你有两个可能的y值:
y = y0 +/- sqrt(r ^ 2 - (x - x0)^ 2)
但这假设您点击的点足够接近圆圈。因此,您应该将所选y与圆上的y进行比较。