我提到了问题Draw a circle within circle at a distance of 10 这接近我的要求。我只需要两个同心圆,一个在另一个内部,半径缩放到300米,外部半径缩小到500米。
我已经能够使用转换方法在屏幕上绘制两个以像素为单位的圆圈,该方法将距离以米为单位转换为相应的像素距离。 下一步是在圆圈内画一个加号;线条是直径。因此,他们将穿过中心并在圆圈上包含两个点。
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是外圆的半径。 我看到的输出就是这个。该线延伸到下方。我走对了路吗?
答案 0 :(得分:2)
我认为你走在正确的轨道上。请注意,只有Y会更改垂直线。
假设中心由C(a,b)给出
所以终点就是
(a,b-r) and (a,b+r)
对于水平线,只有x更改:
(a-r,b) and (a+r,b)
将成为终点。
r是半径。