码迷,mamicode.com
首页 > 其他好文 > 详细

[转] 打印一近似圆,给定不同半径,圆的大小随之改变

时间:2018-10-06 13:25:55      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:paint   lan   ++   中间   art   gets   pre   参数   调用   

    import java.lang.Math;  
      
    public class MathDraw  
    {  
        /** 
         * 画图函数,输入圆半径,输出圆 
         */  
        public static void paint(int r)  
        {  
           //假定圆心在坐标(r,r)处  
           int x = 0; //x的坐标开始  
           int y = r * 2;    //y的坐标开始  
           int c = 0; //中间空格数量  
           int z = 2; //每行递减量,步长设为2是为了调节屏幕纵横比。  
      
           for (int i = r * 2; i >= 0; i = i-z) {  
               //获取画*点坐标的x值  
                x = getX(r, y);  
               //先画该y值上左边的*  
                System.out.print(getSpace(x) +"*");  
               c = (r-x)*2; //以圆心对应输出空格  
               //再画该y值上右边的*  
                System.out.println(getSpace(c) +"*");  
               //每次y值递减  
                y-=z;  
            }  
        }  
      
         /** 
         * 获取画*位置,输入圆半径和坐标y值,输出坐标x值 
         */  
        public static int getX(int r, int y) {  
            //取直角三角形长边长  
            int h = y - r;   
           //求直角三角形短边长  
            double l = Math.sqrt((r * r) - (h * h));  
           //取x值,Math.round()返回最接近的整数  
            return (int) Math.round(r-l);  
        }  
      
        /** 
         * 画空格 
         */  
        public static String getSpace(int i) {  
            String s = "";  
            for (int j = 0; j < i; j++) {  
                s += " ";  
            }  
            return s;  
        }  
      
        public static void main(String[] args)  
        {  
           //调用画图函数,参数是圆的半径  
           paint(6);  
        }  
    }  

[ 转自https://blog.csdn.net/monarch_lin/article/details/8679856# ]

[转] 打印一近似圆,给定不同半径,圆的大小随之改变

标签:paint   lan   ++   中间   art   gets   pre   参数   调用   

原文地址:https://www.cnblogs.com/kexve/p/9746963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!