您的位置:首页 > 编程语言 > Java开发

疯狂java讲义--第三章习题 画圆

2015-10-28 21:17 459 查看
/**

* 画圆算法,给定半径r,输出圆形

* @author joy

*

*/

public class DrawCircleTest {

private int r;// 圆的半径

DrawCircleTest (int r) {

this.r = r;

}

void paint () {

int y = 2 * r;

int x1 = 0;

int x2 = 0;

//由于计算的失真,画圆时y坐标递减为2,否则画出圆会拉长

for (int i = y; i >= 0; i -= 2) {

x1 = getX(i);

x2 = 2 * r - x1;

System.out.print(getSpace(x2) + "*");

System.out.println(getSpace(x1 - x2) + "*");

//System.out.println("("+ x2 + "," + i +")"+ "(" + x1 + "," + i + ")");

}

}

int getX (int y) {

double temp = 0;

temp = Math.sqrt((double)(r * r - (y - r) * (y - r)));

return (int)Math.round(temp) + r;

}

String getSpace (int n) {

String space = "";

for (int i = 0; i < n; i++) {

space += " ";

}

return space;

}

public static void main(String args[]) {

new DrawCircleTest(6).paint();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: