java 用math类的方法划近似圆

在《疯狂java讲义》的第三章有这么个题目“通过API文档查询Math类的方法,打印出如下所示的近似圆,只要给定不同半径,圆的大小随之发生改变(如果需要使用复杂的数学运算,可以查阅Math类的方法或者参考9.3节的内容)”

T_3_2.java 的源代码如下

/*打印近似圆,给定不同的半径,圆的大小随之发生改变*/
public class T_3_2
{
	public static void main (String[] args)
	{
		//定义半径
		int r=6;
		//定义y为圆的纵坐标,其中y=y+2是让设置纵坐标的步长,可以调整椭圆的“胖瘦”
		for (int y=0;y<=2*r ;y=y+2 )
		{
			long x= Math.round(r - Math.sqrt( 2 * r * y - y * y));   
			for (int i=0;i<=2*r ;i++ )
			{
				//i==x是指某一个纵坐标对应的一个横坐标,i==2*r-x 是指该纵坐标对应的第二个横坐标
				if (i==x||i==2*r-x)
				{
					System.out.print("*");
				}
				else
				{
					System.out.print(" ");
				}
			}
			System.out.print("\n");
		}
	}
}

效果图:
划近似圆

2 thoughts on “java 用math类的方法划近似圆”

发表评论

电子邮件地址不会被公开。 必填项已用*标注