我提到了在距我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是半径。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句