import java.util.Scanner;
class rotateRhombus
{
static int x=0;
static int y=0;
public static void main(String[] args){
rotateRhombus(0); //先打印一个原型
rotateRhombus(1); //顺时针旋转90°
rotateRhombus(2); //顺时针旋转180°
rotateRhombus(3); //顺时针旋转270°
System.out.println("请输入一个整数"); //输入的数是顺时针旋转90°的次数
Scanner sc = new Scanner(System.in);
rotateRhombus(sc.nextInt()); //打印旋转的菱形
}
public static void rotateRhombus(int N){
int n = 5; //把菱形的中心放置在坐标轴的原点,5代表往四周延生5个单位.
switch(N%4){ //判断N%4的4种情况,对应不同的图形.
case 0: //原型或旋转360°
for ( y=-n ; y<=n ; y++){
for( x=-n; x<=n ; x++){
printRhombus(x,y,n);
}
System.out.println();
}
break;
case 1: //顺时针旋转90°
for ( x=-n ; x<=n ; x++){
for( y=n; y>=-n ; y--){
printRhombus(x,y,n);
}
System.out.println();
}
break;
case 2: //顺时针旋转180°
for ( y=n ; y>=-n ; y--){
for( x=n; x>=-n ; x--){
printRhombus(x,y,n);
}
System.out.println();
}
break;
case 3: //顺时针旋转270°
for ( x=n ; x>=-n ; x--){
for( y=-n; y<=n ; y++){
printRhombus(x,y,n);
}
System.out.println();
}
break;
default:
}
}
public static void printRhombus(int x,int y,int n){//打印菱形(带标识符)
System.out.print(((x+y<=n) && (x+y>=-n) && (x-y<=n) && (x-y>=-n))? ((x==-4 && y==-1)?"1":"*"):" ");
}
}
我的源码,分享一下,遍历的方向要始终保持一致有点难理解 |