利用Math类,JAVA输入圆半径打印相似圆
来源:互联网 发布:轮毂拉丝机编程 编辑:程序博客网 时间:2024/06/04 08:27
刚好看到这个题目,便自己动手写,发现每次打印出来的都是椭圆,网上找到了一篇文章写得很精练加以自己的理解以图的方式希望可以帮助大家理解
具体思路如下:
1.把控制台当做是一个直角坐标系,第一个点(0,0)为原点,这时控制台就相当于直角坐标系的第四象限,但我们要把它看成第一象限,因为这样不用涉及负数的问题.
2.把(r,r)看成是圆的中心,如下图,先获取所要打印的*点的横坐标x,程序中调用getX(int r,int y)方法获取(利用直角三角形的勾股定理)
3.先打印左边的空格,getSpace(int s)获取空格数,接着打印号
4.接着打印两个号之间的空格,最后打印号,这样一行打印完成
5.循环打印2 * r + 1次,程序完成
下面是代码
import java.util.Scanner;public class Circle{ public static void main(String[] agrs) { System.out.print("请输入圆半径:"); paint(new Scanner(System.in).nextInt()); } public static void paint(int r) { //设圆心在(r,r)处,控制台起始点为(0,0),把由此建立的直角坐标系的第四象限看成第一象限 int x = 0;//x坐标 int y = 0;//y坐标 int c = 0;//左右两个*之间的空格数 int z = 2;//用于控制纵横比,设为2刚刚好 for(int i = 0;i <= 2*r; i += 2) { //先获取每一行左边*号的坐标X x = getX(r,y); //打印第一个*号之前的空格和*号 System.out.print(getSpace(x) + "*"); //打印两个*号之间的空格 c = 2 * (r - x); System.out.println(getSpace(c) + "*"); y += 2; } } public static int getX(int r,int y) { //由直角三角形勾股定理可以得到圆的边上的点的横坐标x return (int)Math.round((r - Math.sqrt(r * r -(r - y)*(r - y)))); } public static String getSpace(int s) { String space = ""; for (int j = 0;j < s;j ++) { space += " "; } return space; } }
0 0
- 利用Math类,JAVA输入圆半径打印相似圆
- 利用Math类的方法,打印一个近似圆
- 用Math方法打印出一个圆,用星号组成,根据半径大小变化
- 通过API文档查询Math类的方法,打印出近似圆,只要给定不同半径,圆的大小随之发生改变
- 用java的math类方法打印一个圆
- 输入圆半径并计算面积。
- 输入圆半径 计算 直径 周长 面积
- 输入半径,输出圆的面积
- 黑马程序员之C#编程基础学习笔记:让用户输入一个半径,打印出圆的面积。
- 练习1、通过API文档查询Math方法,打印出如下所示的近似圆,只要给定不同半径,圆的大小随之发生改变。
- 基于JAVA求圆的面积和半径,JOptionPane有框输入
- 给定半径,CMD状态下打印出相应半径的圆
- 输入圆的半径,求出该半径的圆的周长和面积
- 输入圆的半径,求出该半径的圆的周长和面积
- 输入圆的半径,求出该半径的圆的周长和面积并输出
- 输入圆的半径,求出该半径的圆的周长和面积并输出
- 打印近似圆形 Java Math类 *号
- 安卓输入圆的半径求圆的面积
- DirectX中设备创建,以及表面缓冲区的使用
- ]字符串中的单词逆转
- centos7安装mysql
- 对JavaScript中call和apply的理解
- Linux 技巧:让进程在后台可靠运行的几种方法
- 利用Math类,JAVA输入圆半径打印相似圆
- 关于APM飞控中High Hdop的一些测试
- jQuery获取绑定自定义事件的元素
- c++实现简单计算器
- 第十二周 【项目4 - 点、圆的关系】
- 5.代理模式
- java 学习书籍-想精通java的必看
- Studio 总结
- sccanf的用法