JAVA用“*”打印出圓形實驗案例
阿新 • • 發佈:2018-12-10
目標:使用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("*"); } } }
效果圖: