使用java打印心型、圆形图案的实现代码

作者:清风丿自来 时间:2021-08-30 19:50:45 

相信对于打印三角形都没什么难度,只需要利用for循环嵌套使用就行

但是对于打印圆形和三角形不同因为到圆心距离相等的点一般不会横坐标和纵坐标都为整数

打印爱心

爱心的公式 (x²+y²-1)³-x²*y³=0

调用此方法即可打印爱心图案


/**
*打印心形
*/
public static void aiXin(){
  for(float y = (float) 1.5;y>-1.5;y -=0.1) {
   for(float x= (float) -1.5;x<1.5;x+= 0.05){
    float a = x*x+y*y-1;
    if((a*a*a-x*x*y*y*y)<=0.0) {
      System.out.print("^");
    }
    else
      System.out.print(" ");
   }
   System.out.println();
 }
}

使用java打印心型、圆形图案的实现代码

打印圆形

打印圆形主要就是所有点到圆心的距离为半径即可


public static void circle(){
 int r=15;//圆形的半径
  for (int y = 0; y <= 2 * r; y += 2) {//y的步长为2,改变y的步长可以将圆形变成椭圆
  int x = (int)Math.round(r - Math.sqrt(2 * r * y - y * y));
  int len = 2 * (r - x);
  for (int i = 0; i <= x; i++) {
   System.out.print(' ');
  }
  System.out.print('*');
  for (int j = 0; j <= len; j++) {
   System.out.print(' ');
  }
  System.out.println('*');
 }
}

效果如下

使用java打印心型、圆形图案的实现代码

如果想打印实心的只需要把条件修改即可


for (int j = 0; j <= len; j++) {
   System.out.print('*');
 }

此循环是打印圆形里面部分,输出字符就是实心圆

使用java打印心型、圆形图案的实现代码

补充知识:在Java中打印金字塔图案

1、问题描述

打印出金字塔图案,如图1所示。

使用java打印心型、圆形图案的实现代码

2、问题分析

这时一个很经典的循环应用的问题。我们都知道,打印输出的时候,都是从

最左端输出,而这里第一个三角形符号是在最中间,这实际是因为三角形之前有很多空格。当我们使用圆圈来表示空格,实际的输出效果应该是图2的形式。

使用java打印心型、圆形图案的实现代码

分析图2,我们可以发现这个题目的奥秘。

(1) 确定程序框架

程序框架代码如下:


publicclass Ch1_1
{
 public static void main(String[] args)
 {
   *********
   for(i = 1; i<= 5; i++)  //循环5次,打印5行
   {
     //打印若干空格
     //打印若干符号
   }
 }

(2) 寻找空格和符号规律

表1 空格和符号规律

行数

空格数

符号数

1

4

5-1

1

1*2-1

2

3

5-2

3

2*2-1

3

2

5-3

5

3*2-1

4

1

5-4

7

4*2-1

5

0

5-5

9

5*2-1

规律

依次递减1

5-行数

依次递增2

行数*2-1

(3) 打印空格数

由于每行空格数有“5-行数”的规律,对应代码如下:


for(i =1; i<= n; i++)
{
 for(j = 1; j <= n – i; j++)  //根据外层行号,输出符号左边空格
   System.out.println(“ ”);
}

(4) 打印符号数

由于每行符号数有着“行数*2-1”的规律,对应代码如下:


for(i =1; i<= n; i++)
{
 for(k = 1; j <= i * 2 -1; k++) //根据外层行号,输出符号数
   System.out.println(“*”);
}

(5) 完整程序


importjava.util.Scanner;
publicclass Ch1_1
{
 public static void main(String[] args)
 {
   int i, j, k, n;
   Scanner input = new Scanner(System.in);
   System.out.print("请输入金字塔层数:");
   n = input.nextInt();
   //外层循环控制层数
   for(i = 1; i <= n; i++)
   {
     //根据外层行号,输出星号左边的空格
     for(j = 1; j <= n - i; j++)
      System.out.printf(" ");
     //根据外层行号,输出星号个数
     for(k = 1; k <= 2 * i -1; k++)
      System.out.print("*");
     //一行结束,换行
     System.out.print("\n");
   }
 }
}
/*
*注:Java中的print、printf、println
*/

程序运行结果,见图3。

使用java打印心型、圆形图案的实现代码

(6) 扩展

倒金字塔


importjava.util.Scanner;
publicclass Ch1_1
{
 public static void main(String[] args)
 {
   int i, j, k, n;
   Scanner input = new Scanner(System.in);
   System.out.print("请输入倒金字塔层数:");
   n = input.nextInt();
   //外层循环控制层数
   for(i = 1; i <= n; i++)
   {
     //根据外层行号,输出星号左边的空格
     for(j = 1; j <= i - 1; j++)
      System.out.printf(" ");
     //根据外层行号,输出星号个数
     for(k = 1; k <= 2 * (n - i) -1;k++)
      System.out.print("*");
     //一行结束,换行
     System.out.print("\n");
   }
 }
}

直角三角形


importjava.util.Scanner;
publicclass Ch1_1
{
 public static void main(String[] args)
 {
   int i, j, k, n;
   Scanner input = new Scanner(System.in);
   System.out.print("请输入直角三角形层数:");
   n = input.nextInt();
   //外层循环控制层数
   for(i = 1; i <= n; i++)
   {
     //根据外层行号,输出星号个数
     for(k = 1; k <= n - i + 1; k++)
      System.out.print("*");
     //一行结束,换行
     System.out.print("\n");
   }
 }
}

来源:https://blog.csdn.net/qq_39098813/article/details/79781396

标签:java,打印,心型,圆形
0
投稿

猜你喜欢

  • MediaPlayer音频与视频播放方法示例介绍

    2021-07-03 17:36:48
  • c#分页读取GB文本文件实例

    2021-09-13 10:18:39
  • Kotlin Option与Either及Result实现异常处理详解

    2022-03-31 17:33:18
  • Java 静态代理与动态 代理解析

    2023-08-22 17:18:19
  • MyBatis-Plus联表查询(Mybatis-Plus-Join)的功能实现

    2023-11-25 03:24:33
  • C++如何通过ostringstream实现任意类型转string

    2022-06-27 16:23:06
  • 基于ElasticSearch Analyzer的使用规则详解

    2023-09-28 14:41:04
  • Android传感器SensorEventListener之加速度传感器

    2023-03-07 15:05:50
  • Android微信抢红包功能的实现原理浅析

    2023-11-20 19:14:40
  • Android 如何获取设备唯一标识

    2022-09-03 10:47:48
  • java中replaceAll替换圆括号实例代码

    2023-09-30 16:29:54
  • java实现科学计算器的全过程与代码

    2022-04-09 07:49:52
  • Java的运算符和程序逻辑控制你了解吗

    2023-01-19 10:01:59
  • C#实现的微信网页授权操作逻辑封装示例

    2022-08-31 04:30:05
  • Android OkHttp实现全局过期token自动刷新示例

    2023-01-24 10:31:57
  • 在Struts2中如何将父类属性序列化为JSON格式的解决方法

    2022-08-01 09:30:34
  • C#实现GZip压缩和解压缩入门实例

    2021-05-29 08:20:45
  • 详解Java中Dijkstra(迪杰斯特拉)算法的图解与实现

    2023-05-03 18:35:24
  • RxJava之网络请求最常见的三种场景

    2023-04-29 19:49:48
  • Spring Cache框架应用介绍

    2023-06-15 22:32:59
  • asp之家 软件编程 m.aspxhome.com