首页 > 代码库 > Java近似圆

Java近似圆

效果图与原理图

                             

代码:

 1 public class Circle 2 { 3     public static void main(String[] args) 4     { 5         int radius = 10; 6         System.out.println("输出半径为" + radius + "的近似圆"); 7         paint(radius); 8     } 9 10     public static void paint(int r)11     {12         //假设圆心在(r, r)13         int x;    //当前的x坐标14         int y = 2 * r;   //当前的y坐标15         int space;    //每行中间的空格数量16         int d = 2;   //每行的递减量17         for(int j = 2*r; j>=0; j=j-d)18         {19             x = getX(r, y);20             space = 2 * (r-x);21             System.out.print(getSpace(x+10) + "*");  //左边的*号,同时向右平移了10个单位22             System.out.println(getSpace(space) + "*");   //右边的*号23             y -= d;24         }25     }26 27     public static int getX(int r, int y)28     {    {29 30         double tempX;31         tempX = Math.sqrt(r*r - (y-r)*(y-r));32         return (int)Math.round(-tempX +r); //Math.round(double d)返回最接近参数的 long,所以需要进行类型强制转换33     }34 35     public static String getSpace(int space)36     {37         String s = "";38         for(int i=0; i<space; i++)39         {40             s = s+" ";41         }42         return s;43     }44 }
View Code

 

Java近似圆