圆的特点是,圆上的点到圆心的距离都是相等的。所以设起点为(0,0), 圆上的点为(x,y),则圆心位置为(r,r)。
根据点到点的距离公式-> (x - r)^2 + (y - r)^2 = r^2。根据图示分析,我们可以知道 x <= 2*r, y <= 2r。x的范围是
0<= x <= 2r , y 的范围是 0 <= y <= 2r。
假设r的半径是5,则x的取值范围 0<= x <= 10 ,y的取值范围是 0 <= y <= 10。
遍历循环所有x,y的点,找到满足距离公式的点,打印出来即可。
代码如下:
/**
* 输入半径
* @param radius
*/
private static void drawCircle(int radius){
for(int y = 0 ; y <= (2 * radius) ; y++){
for(int x = 0 ; x <= (2 * radius) ; x++){
//这里实际上输出的是一个正方形
// System.out.print(" * ");
if(Math.pow(x - radius,2) + Math.pow(y - radius,2) == Math.pow(radius,2)){
//由于控制台有默认行距,导致打印不像圆,所以调整了一下,在*号前后添加空格
System.out.print(" * ");
}else{
System.out.print(" ");
}
}
//换行
System.out.println();
}
}