Java中各种打印形状



Java中各种打印形状
1.打印99乘法表
for (int i = 1;  i <= 9; i++)
//     {
//       for(int n = 1; n <= i; n++)
//       {
//         System.out.print( i + " x " + n + " = " + i * n + " ");
//       }
//       System.out.println();
// }
2.打印空的菱形
for(int i=1; i<=7; i++){       //一共7行 
      if(i<=3) {             //在1-3行打印正三角形 
       for(int j=1; j<=7; j++){     //每行7列 
        if(j==i+3||j==5-i){       //在i+3和5-i两个地方打印*,第一行这两者相等,所以只打印一个* 
         System.out.print("*"); 
        }  
        else{ 
         System.out.print(" "); 
        } 
       } 
      }  
      else{ 
       for(int k=1; k<=7; k++){     //在4-7行打印倒三角形 
        if(k==i-3||k==11-i){      //在i-3和11-i两个地方打印*,最后一行这两者相等,所以只打印一个* 
         System.out.print("*"); 
         }  
        else{ 
         System.out.print(" "); 
        } 
        } 
       } 
     System.out.println(); 
     } 
     } 
}
3.打印正三角型
 for(int i=0;i<=5;i++)
     {
        for(int j=0;j<i;j++)
        System.out.print("*");
        System.out.println();

4.实心菱形

int i,j,k;
       for(i=1;i<=5;i++){
          for(j=1;j<=5-i;j++)
           System.out.print(" ");
          for(k=1;k<=2*i-1;k++)
           System.out.print("*");
System.out.println("");}

       for(i=1;i<=4;i++){
          for(j=1;j<=i;j++)
           System.out.print(" ");
          for(k=1;k<=9-2*i;k++)
           System.out.print("*");
          System.out.println("");}

5.金字塔

     int i = 5

     for (int j = 1; j <= i; j++) {  

            //控制星号数量  

           int times = (2*j)-1;  

            //控制空格数量  

           int time=0;  

            //根据规律,做出限定  

            while(time!=(i-j))  

            {  

                System.out.print(" ");  

                time++;  

            }  

            while (times != 0) {  

                System.out.print("*");  

                times--;  

            }  

            System.out.print("\n");  

        }  

6.打印心型

  static void draw(int n) {
       int i, j;
       for (i = 1 - (n >> 1); i <= n; i++)
           if (i > 0) {
               for (j = 0; j < i; j++)
                   System.out.print("  ");
               for (j = 1; j <= 2 * (n - i) + 1; j++)
                   if (j == 1 || j == 2 * (n - i) + 1)
                       System.out.print(" *");
                   else
                       System.out.print("  ");
               System.out.println("\n");
           } else if (i == 0) {
               System.out.print(" *");
               for (j = 1; j < n; j++)
                   System.out.print("  ");
               System.out.print(" *");
               for (j = 1; j < n; j++)
                   System.out.print("  ");
               System.out.print(" *\n");
           } else {
               for (j = i; j < 0; j++)
                   System.out.print("  ");
               for (j = 1; j <= n + 2 * i + 1; j++)
                   if (i == 1 - (n >> 1))
                       System.out.print(" *");
                   else if (j == 1 || j == n + 2 * i + 1)
                       System.out.print(" *");
                   else
                       System.out.print("  ");
               for (j = 1; j <= -1 - 2 * i; j++)
                   System.out.print("  ");
               for (j = 1; j <= n + 2 * i + 1; j++)
                   if (i == 1 - (n >> 1))
                       System.out.print(" *");
                   else if (j == 1 || j == n + 2 * i + 1)
                       System.out.print(" *");
                   else
                       System.out.print("  ");
               System.out.print("\n");
           }
   }
 
   public static void main(String[] args) {
 
       System.out.println("Please input the size (n>=4):");
       Scanner sc = new Scanner(System.in);
       int n = sc.nextInt();
       draw(n);
 
   }
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java绘制不规则几何图形,比如划曲线,写字,线条随意画,如截图所示,甚至可以写出文字:   不规则图形的绘制代码:   public class IrregularShapeDemo extends JFrame {    GeneralPath gPath= new GeneralPath(); //GeneralPath对象实例   //构造函数   public IrregularShapeDemo() {    super("不规则图形的绘制"); //调用父类构造函数    enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK); //允许事件    setSize(300, 200); //设置窗口尺寸    setVisible(true); //设置窗口可视    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序    }    public void paint(Graphics g) { //重载窗口组件的paint()方法    Graphics2D g2D = (Graphics2D)g; //获取图形环境    g2D.draw(gPath); //绘制路径    }    public static void main(String[] args) {    new IrregularShapeDemo();    }    protected void processMouseEvent(MouseEvent e) { //鼠标事件处理    if(e.getID() == MouseEvent.MOUSE_PRESSED) {    aPoint = e.getPoint(); //得到当前鼠标点    gPath = new GeneralPath(); //重新实例化GeneralPath对象    gPath.moveTo(aPoint.x,aPoint.y); //设置路径点    }    }    protected void processMouseMotionEvent(MouseEvent e) { //鼠标运动事件处理    if(e.getID() == MouseEvent.MOUSE_DRAGGED) {    aPoint = e.getPoint(); //得到当前鼠标点    gPath.lineTo(aPoint.x, aPoint.y); //设置路径    gPath.moveTo(aPoint.x, aPoint.y);    repaint(); //重绘组件    }    }   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值