java小例子:打印一个近似圆,要求根据给定半径圆的大小随之发生改变
2013-03-15 23:02
197 查看
如题:通过API文档查询Math类方法,打印如下所示的近似圆,只要给定不同的半径,圆的大小随之发生改变。
运行程序:
![](http://img.my.csdn.net/uploads/201303/16/1363418465_5071.gif)
另外一种:
运行程序:
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); } }
运行程序:
![](http://img.my.csdn.net/uploads/201303/16/1363418465_5071.gif)
另外一种:
public class CircleDraw { /** * @param args * @author bigboy */ public static void main(String[] args) { // TODO Auto-generated method stub // 定义半径 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"); } } }
运行程序:
![](http://img.my.csdn.net/uploads/201303/16/1363418502_3428.gif)
相关文章推荐
- 通过API文档查询Math类的方法,打印出近似圆,只要给定不同半径,圆的大小随之发生改变
- 练习1、通过API文档查询Math方法,打印出如下所示的近似圆,只要给定不同半径,圆的大小随之发生改变。
- 给定圆半径,JAVA打印近似圆
- 用Math方法打印出一个圆,用星号组成,根据半径大小变化
- 一个可以根据设定输出图片的函数 可以改变图片的大小
- 本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。
- 界面上单元格的可操作性和背景颜色根据某一个单元格值的变化而发生改变
- JAVA语言如何用星号打印出一个近似圆
- java 用“*”在控制台打印出一个近似圆
- 根据iframe中的一个对象大小去动态改变多个iframe的大小
- 给定一个正整数数组,随机取出一个数,要求数值越大的数被被取出的概率越大。- JAVA
- java多线程发生死锁的一个例子
- java经典算法_023给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- [Java] 动态代理 05 一个成功程序的例子, 改变几句就成了另一个功能
- java中给出一个不多于5位数的正整数,要求,第一是求出它是第多少位的,逆序打印出各位数字
- [JAVA]给定一个整形数组,求其和、平均数、最大值及最小值、打印数组中的数据
- [Java] 动态代理 05 一个成功程序的例子, 改变几句就成了另一个功能
- java 打印输出九九乘法表.要求:只能使用一个while,不能使用for循环、递归。
- Java经典算法集——如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- JAVA算法题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。