前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java|实现图形打印

Java|实现图形打印

作者头像
算法与编程之美
发布2020-08-06 21:30:59
2.4K0
发布2020-08-06 21:30:59
举报

问题描述

在Java学习当中,当我们熟练掌握了关于for循环的基础之后,就可以利用其来实现一个图形的打印,主要是利用“*”符号或者其他符号来进行图形的一个拼合,来呈现出一个完整图形样式。

解决方案

首先需要清楚,如果使用“*”符号来呈现一个图形,要呈现一个矩形样式,则直接打印i×j个“*”号即可;若需要打印三角形,则需要注意,有些部分需要以空格的形式打印输出;同理,也可以打印出圆形、心形或其他不规则图形。

需要注意的小技巧是,在Java当中,打印用System.out.println()会换行,用System.out.print()则不会换行,接下来进行几个简单的编程演示吧。

1、矩形

矩形打印需要用一个嵌套for循环来实现图形的长宽打印。外层for循环控制行数,内层for循环控制列数。其中小技巧是,打印时在内层不进行换行,外层进行换行。

public class juxing { public static void main(String[] args) { for(int j = 0;j < 5;j++){ //行数5 for(int i = 0;i < 5;i++){ //列数5 System.out.print("*"); } System.out.println(); } } }

图2.1 矩形打印结果

2、三角形

三角形打印同样需要嵌套for循环,这里需要由空格来替换掉部分“*”号,因此在内层需要两个for循环来实现替换。这里若要实现正三角形,则可以用一个小技巧“* ”占两个字节。

public class triangle { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5-i; j++) { System.out.print(" "); } for (int k = 0; k < i; k++) { System.out.print("* "); } System.out.println(); } } }

图2.2 三角形打印结果

3、圆形

打印圆形必须要用到Java中的Math方法,其中Math.sqrt()计算平方根,Math.round()四舍五入取整。首先定义一个变量为圆形的半径r并赋值,可知圆心坐标为(r,r),勾股定理可知圆y = r -√(2*r*x-x*x)。

public class circle { //心形 int r=10; for (int y = 0; y <= 2 * r; y += 2) { 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('*'); } } }

图2.3 圆形打印结果 结语

以上图形只是一些常见的基础图形打印,其实这里发散一下思维,可以打印任何自己想要呈现的图形,比如上次网络上很火的打印国旗图案,其实也能够在对图形进行简单构思后确定好点位打印出来。掌握了基础方法后,至于要去实现什么结果,因人而异,需要每个人的想象力。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 解决方案
  • 图2.3 圆形打印结果 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档