62,615
社区成员
发帖
与我相关
我的任务
分享
public class Graphics4 {
public static void main(String[] args) {
printDiamond(10);
}
public static void printDiamond(int line) {
line = (line % 2 == 0 ? line + 1 : line);
System.out.println(line);
int k = line / 2 + 1;
for (int i = -k; i <= k; i++) {
int a = Math.abs(i);
for (int j = -k; j <= k; j++) {
int b = Math.abs(j);
System.out.print((a == k || b == k || a + b < k) ? "* ": " ");
//(a+b)与k的关系的变化,可以演变出很多不同的形式
}
System.out.println();
}
}
}
结果:
11
* * * * * * * * * * * * *
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
* * * * * * * * * * * * *
如果要去掉边框,只需把System.out.print((a == k || b == k || a + b < k) ? "* ": " ");中的 a == k || b == k || 去掉。
看看去掉边框的结果吧:
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
改变菱形的形状:
1.可以修改i、j 的上限值,本次是k
2.可以改变 a + b < k中a、b的系数
说白了,就是对一个一次函数的ax+by+c=0的修改,从而改变在四个象限的形状(注:x、y取整数)。
如果加上一些什么二次函数、特殊函数,那么我们可以搞出很奇妙的图形来哦!
试试吧!
说这么多,其实只有一个:学习方式。了解了背后才会游刃有余,变幻无穷。就像真正的真理是简单的,是不会难为人的,如果一个东西你觉得很难,那么多半是你还没有更深入,安静下来慢慢研究一下,为自己喝彩!
哎,不就是一个图形打印嘛!说了这么多,是不是太自作多情了。拍砖吧!O(∩_∩)O哈哈~
class a2
{
public static void main(String args[])
{
int N=5;
int i=1,j,k,m;
for(m=1;m <=2*N-1;m++)
{
for(j=1;j <=Math.abs(N-i);j++)
System.out.print(' ');
k=N-Math.abs(N-i);
for(j=1;j <=2*k-1;j++)
System.out.print('*');
System.out.println();
i++;
}
}
}
public class Test {
public static void main(String[] args) {
printDiamond(7, true);
System.out.println();
printDiamond(7, false);
}
/**
* 输出菱形
* @param line 菱形的行数
* @param isSolid 是否为实心
*/
private static void printDiamond(int line, boolean isSolid) {
line = line % 2 == 0 ? line + 1 : line;
for(int k = line / 2, i = -k; i <= k; i++) {
for(int j = -k, m = k - Math.abs(i); j <= m; j++) {
boolean b;
if(isSolid) {
b = Math.abs(j) + Math.abs(i) > k;
} else {
b = Math.abs(j) + Math.abs(i) != k;
}
System.out.print(b ? " " : "*");
}
System.out.println();
}
}
}
j=
-3 -2 -1 0 1 2 3
i= +---+---+---+---+
-3 | | | | * |
+---+---+---+---+---+
-2 | | | * | * | * |
+---+---+---+---+---+---+
-1 | | * | * | * | * | * |
+---+---+---+---+---+---+---+
0 | * | * | * | * | * | * | * |
+---+---+---+---+---+---+---+
1 | | * | * | * | * | * |
+---+---+---+---+---+---+
2 | | | * | * | * |
+---+---+---+---+---+
3 | | | | * |
+---+---+---+---+