有关打印图像的问题
我记得我第一次接触打印图像的问题时,大概就是长方形,三角形,菱形等等。另外很多的复杂一点图像也是用这些基本的图像打印而成,因此这些简单的图形就显得格外重要。下面是我看到一些大佬的博客产生的一些想法。
首先时一个引起思考的小程序:
for(i=-5;i<=5;i++)
{ for(j=-5;j<=5;j++)
{ if(Math.abs(i)+Math.abs(j)<=5&&i%2==0&&j!=0)
System.out.print("*");
else if(j!=0) System.out.print(" ");
}
System.out.println();
}
/* 题目:打印出如下图案(菱形)
××
××××××
××××××××××
××××××
××
*/
这段程序并不长。我们读完题可以看到:
1.这段程序的*都在图形|x|+|y|=0的内部打印出来的,并且是隔行打印。
2.于是我们可以利用每个位的坐标加以限制。从而将字符打印出来。
但是在这中间确实会遇到很多的问题和手法:
1.首先就是这种对称方式只能打印基数行和列,原因是有坐标轴的存在。
解决办法:灵活地加入和除去坐标轴行从而做到对奇数和偶数行和列的处理
2.然后就是要对具体问题具体分析,如果中间有别的条件,要灵活的加入其中。