代码示例一
package three;
import java.util.Scanner;//形象理解:在java.util下将Scanner拿过来用
//import java.awt.Paint;
//import java.lang.Math;
public class test3 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);// radius半径
System.out.print("请输入圆的半径:");
int r = sc.nextInt();//使用户能够从 System.in 中读取一个数
for(int i=0;i<=2*r;i+=2) {//行数 小于等于直径
int x=(int)(r - Math.round(Math.sqrt((2*r*i-i*i))));
//Math.sqrt此方法返回一个正平方根。如果参数是NaN或小于为零,那么结果为NaN。
//round() 方法返回一个最接近的 int、long 型值,四舍五入。
for(int j=0;j<x;j++){//列数。嵌套循环
System.out.print(" ");//左边空白
}
System.out.print("*");//左边界
for(int k=0;k<2*(r-x);k++) {
System.out.print(" ");//右边空白
}
System.out.println("*");//右边界
}
}
}
运行结果:
请输入圆的半径:4
**
* *
* *
* *
**
代码示例二
package three;
import java.util.Scanner;//形象理解:在java.util下将Scanner拿过来用
import java.lang.Math;
public class demo {
public static void main(String[] args) {
System.out.print("请输入圆的半径:");
Scanner sc =new Scanner(System.in);// radius半径
int radius = sc.nextInt();//使用户能够从 System.in 中读取一个数
paint(radius); //手动输入半径5
}
public static void paint(int r){//r是形参 radius传进来了
int y = r*2;//y=10
int x = 0;
int c = 0;
int z = 2;
for(int j=r*2;j>=0;j=j-z){//j>=0 && j<=10 j=8,
x=getX(r,y);
System.out.print(getSpace(x)+"*");
c=(r-x)*2;
System.out.println(getSpace(c)+"*");
y-=z;
}
}
public static int getX(int r,int y){
int x=y-r;//x=5
double t=Math.sqrt((r*r)-(x*x));
//Math.sqrt此方法返回一个正平方根。如果参数是NaN或小于为零,那么结果为NaN。
return (int)Math.round(r-t);
//round() 方法返回一个最接近的 int、long 型值,四舍五入。
}
public static String getSpace(int i){
String s = " ";
for(int j=0;j<i;j++){
s+=" ";
}
return s;
}
}
代码示例:
请输入圆的半径:5
* *
* *
* *
* *
* *
* *
代码示例三
package three;
public class test4 {
public static void main(String[] args) {
/**
* 打印一个圆
* 假设圆上一点为(x,y)
Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。
*/
int r = 8; //9行
for (int y = 0; y <= 2 * r; y +=2) {//y的步长为2,改变y的步长可以将圆形变成椭圆
int x = (int)Math.round(r - Math.sqrt(2*r*y-y*y)); //Math.sqrt(r * r-(r-y) *(r-y))转化得
int len = 2 * (r - x); //对称的两*之间的距离
//i行j列
for (int i = 0; i <= x; i++) { //距离控制台左边的距离
System.out.print(" ");
}
System.out.print("*");
for (int j = 0; j <= len; j++) {
System.out.print(" ");
}
System.out.println("*");
}
}
}
运行结果:
* *
* *
* *
* *
* *
* *
* *
* *
* *