1. 程式人生 > >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("*");
		}
	}
}

效果圖: