我提到了问题Draw a circle within circle at a distance of 10
这接近我的要求。我只需要两个同心圆,一个内圆,另一个内圆,半径定为300 mts,外面一个圆,半径定为500 mts。
我已经能够使用转换方法在屏幕上绘制以像素为单位缩放的两个圆圈,该转换方法将以米为单位的距离转换为相应的像素距离。
下一步是在圆圈内画一个加号;线是直径。因此,它们将穿过中心并在圆上包含两个点。
1)我有圆心的纬度和像素细节。
2)我知道圆心与圆心之间的角度必须为90度。
3)我必须使用canvas.drawLine()。
但是最好的方法是将这些点放在圆上,以便可以通过这三个点画一条线。
(点在圆的顶部,圆的中心,点在圆的底部,)。
非常感谢您的帮助。
编辑:
我经过一些搜索后尝试了以下代码
//double degrees = 90.0;
//double radians = Math.toRadians(degrees);
//int x1 = (int) (500 * Math.cos(radians) + x);
//int y1 = (int) (500 * Math.sin(radians) + y);
//canvas.drawLine(x, y, x1, y1, mSelectionBrush);
canvas.drawLine(x, y-500, x, y+500, mSelectionBrush);
canvas.drawLine(x-500, y, x+500, y, mSelectionBrush);
x,y是中心的坐标。 500是外圆的半径。
我看到的输出是这个。该线在下面延伸。我走对了吗?
最佳答案
我认为您在正确的轨道上。请注意,垂直线仅Y改变。
假设中心由C(a,b)给出
所以终点是(a,b-r) and (a,b+r)
对于水平线,只有x发生变化:(a-r,b) and (a+r,b)
将是终点。
r是半径。
关于android - 如何在Android中绘制圆的直径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22140050/