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

相信对于打印三角形都没什么难度,只需要利用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();
  }
 }

打印圆形

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

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('*');
  }
 }

效果如下

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

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

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

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

1、问题描述

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

2、问题分析

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

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

分析图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。

(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");
    }
  }
}

以上这篇使用java打印心型、圆形图案的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java编程实现swing圆形按钮实例代码

    Swing是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT.它们是JFC的一部分.它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们.这意味着你可以在任意平台上使用JAVA支持的任意面板.轻量级组件的缺点则

  • Java多线程实战之交叉打印的两种方法

    要求效果:先打印5次"printA-",再打印5次"printB-",每次打印间隔1秒,重复循环20次 方式一:使用wait()和notifyAll()方法 public class MyService { private volatile boolean flag = false; public synchronized void printA() { try { while (flag) { wait(); } for (int i = 0; i < 5;

  • Java编程用指定字符打印菱形实例

    学习Java 本身是一个挺枯燥的过程,说白了就是每天敲代码而已.但如果换一种思路,可以编写各种各样的程序,不仅加深对代码的理解,同时提高兴趣,这样十分有利于大家的学习.下面我们来看一个有趣的小实例. 如何实现用指定字符打印出一个菱形,代码如下. import java.util.Scanner; import java.util.regex.Matcher; public class test01 { private static int i; private String ch; public

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

    相信对于打印三角形都没什么难度,只需要利用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){ flo

  • java打印指定年月份的日历

    本文实例为大家分享了java打印指定年月份日历的具体代码,供大家参考,具体内容如下 做了一个小的日历打印,没有使用数组,所以不能对日期进行操作,用了单个for循环打印,对初学者来说应该好理解点 工具类: import java.util.Calendar; public class DaysTool { private int year; private int month; public DaysTool(){} public DaysTool(int year ,int month){ th

  • 如何通过Java打印Word文档

    这篇文章主要介绍了如何通过Java打印Word文档,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 打印Word文档 本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法.文中使用了类库Spire.Doc for Java,可通过 官网下载jar文件并导入程序或者直接通过maven仓库安装导入. [示例1]通过物理打印机打印 import com.spire.doc.Document; import com.s

  • java打印出菱形图案实例详解

    第一步:首先对图像进行解析 想要打印该图形必须要进行多层循环嵌套,分两个部分进行打印. 第一部分为上半部分前四行,他们是递增的关系,后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环.并且由于"*"位置的关系,我们必须带入空格同时打印.所以每个部分需要两个循环控制,即两个大循环每个里面嵌套两个小循环总计四个循环. 第二部:对数字进行分析 在分析之前,我们必须明白外层循环控制行数,内层循环控制列数,因此我们需要分析他的行和列. 示例代码如下: class ForForTest

  • java打印国际象棋棋盘的方法

    本文实例为大家分享了java打印出国际象棋棋盘的具体代码,供大家参考,具体内容如下 问题分析 观察国际象棋棋盘的图案,可以发现其中的规律:棋盘由八行八列黑白方块相间组成,可以用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方块还是白方块.这里我们使用了Swing的标签组件JLable,通过设置JLabel组件的背景色和透明度来实现黑白方块. (1)确定程序框架 这是一个绘图案例,这里我们采用JFrame创建窗口,然后在窗口里添加JLabel标签组件,通过前面的问题分析可知,JLabel标

  • 分享java打印简单图形的实现代码

    我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ public class Array { public static void main(String[] args) { //打印长方形 int[] a = new int[10]; for(int i=0 ;i<a.length;i++){ for(int j=0;j<a.length;j++

  • Android开发使用Drawable绘制圆角与圆形图案功能示例

    本文实例讲述了Android开发使用Drawable绘制圆角与圆形图案功能.分享给大家供大家参考,具体如下: 1. 创建类RoundCircleDrawable继承Drawable /** * 圆角矩形 * @Project App_View * @Package com.android.view.drawable * @author chenlin * @version 1.0 * @Date 2016年4月21日 * @Note TODO */ public class RoundCircl

  • JavaScript实现打印星型金字塔功能实例分析

    本文实例讲述了JavaScript实现打印星型金字塔功能.分享给大家供大家参考,具体如下: 让你用其它语言写也是完全一样的道理, 这道题估计大家在学习C语言的时候就见过-- 也就是打印以下的鬼东西: 当时候看到循环结构的时候觉得很无聊,就相当不屑这题,没有好好仔细想想, 因为要是放在JavaScript完全可以这样写,甚至还不算是JavaScript,仅仅就是一个html: <html> <head> <meta http-equiv="content-type&q

  • js+html5实现canvas绘制圆形图案的方法

    本文实例讲述了js+html5实现canvas绘制圆形图案的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not sup

  • Java生成非对称型加密公钥和私钥的方法

    本文实例讲述了Java生成非对称型加密公钥和私钥的方法.分享给大家供大家参考.具体如下: 非对称型加密非常适合多个客户端和服务器之间的秘密通讯,客户端使用同一个公钥将明文加密,而这个公钥不能逆向的解密,密文发送到服务器后有服务器端用私钥解密,这样就做到了明文的加密传送. 非对称型加密也有它先天的缺点,加密.解密速度慢制约了它的发挥,如果你有大量的文字需要加密传送,建议你通过非对称型加密来把对称型'密钥'分发到客户端,及时更新对称型'密钥'. KeyRSA.java如下: import java.

随机推荐