JAVA用“*”打印出圆形实验案例

版权声明:个人笔记,仅供复习 https://blog.csdn.net/weixin_41162823/article/details/82762671

目标:使用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("*");
		}
	}
}

效果图:

猜你喜欢

转载自blog.csdn.net/weixin_41162823/article/details/82762671