1 import java.lang.Math; 2 public class Print_Circle { 3 public static void main(String[] args) { 4 paint(10); //半径10 5 } 6 public static void paint(int r) { 7 //假定圆心在坐标(r,r); 8 int y = r * 2; //y的坐标开始 9 int x = 0; 10 int c = 0; //中间空格数量 11 int z = 2; //每行递减量 12 for (int j = r * 2; j >= 0; j=j-z) { 13 x = getX(r, y); 14 System.out.print(getSpace(x) + "*"); 15 c = (r-x)*2; 16 System.out.println(getSpace(c) + "*"); 17 y-=z; 18 } 19 } 20 public static int getX(int r, int y) { 21 //解圆标准方程的 22 int x = y - r; 23 double t = Math.sqrt((r * r) - (x * x)); 24 return (int) Math.round(r-t); 25 } 26 public static String getSpace(int i) { 27 String s = ""; 28 for (int j = 0; j < i; j++) { 29 s += " "; 30 } 31 return s; 32 } 33 }
转载于:https://www.cnblogs.com/JayAnother/p/5078471.html