FL_jishu 2017-04-12 07:19 采纳率: 50%
浏览 808
已结题

Java,JavaJava图形绘制接口

,,,,,,图片

  • 写回答

1条回答 默认 最新

  • 码农_凉城 2017-04-12 07:27
    关注

    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;
    }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏