標籤: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); } }
[ 轉自8679856# ]
[轉] 列印一近似圓,給定不同半徑,圓的大小隨之改變