zoukankan      html  css  js  c++  java
  • JAVA用“*”打印出圆形实验案例

    目标:使用Java语言用字符‘*’打印出圆形。

    思路:假设要打印一个半径为r的圆,那么圆上的每个点到圆心距离都是r,而我们又知道了圆心的坐标(r,r),故可以知道当某个点距圆心距离为r时就打印‘*’。于是可以用len来表示圆在该行的弦长,而弦两侧要输出‘*’。

    注意事项:

    • 首先如果每行都进行如上判断,那么会发现输出的圆成了“椭圆”,其高度差不多是宽度的两倍,故我们改变一下,每两行进行一次如上判断,可以输出一个近似圆。
    • 其中几个函数作用如下:

    Math.abs();//求绝对值
    Math.sqrt();//求开方根
    Math.round();//求近似整数

    代码示例:

    public class Circle {
    	private double r;
    	double eps = 1;
    	Circle(double r){
    		this.r = r;
    	}
    	public void printCricle() {
    		double R = 2*r;
    		for(int i = 0;i <= R;i+=2) {
    			double y;
    			if(i <= r)	y = r-i;
    			else y = i-r;
    			double len =  Math.round(Math.sqrt(r*r - y*y));
    			for(int j = 0;j < r-len;j++)	System.out.print(" ");
    			System.out.print("*");
    			for(int j = 0;j < 2*len;j++)	System.out.print(" ");
    			System.out.println("*");
    		}
    	}
    }

    效果图:

  • 相关阅读:
    Codeforces 813F Bipartite Checking 线段树 + 并查集
    Codeforces 263E Rhombus (看题解)
    Codeforces 173E Camping Groups hash
    Codeforces 311C Fetch the Treasure 取模意义下的最短路 (看题解)
    R 培训之 Table
    Docker命令详解
    Celery的实践指南
    Using Celery with Djang
    PostgreSQL
    改时区参考
  • 原文地址:https://www.cnblogs.com/long98/p/10352178.html
Copyright © 2011-2022 走看看