当前位置:首页 > Java

JAVA如何画出菱形

2026-03-22 23:12:39Java

使用循环绘制菱形

在Java中绘制菱形可以通过嵌套循环实现,通常需要控制空格和星号的输出数量。以下是一个基础实现示例:

public class DiamondPattern {
    public static void main(String[] args) {
        int n = 5; // 菱形高度的一半(总行数为2n-1)

        // 上半部分
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n - i; j++) {
                System.out.print(" ");
            }
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }

        // 下半部分
        for (int i = n - 1; i >= 1; i--) {
            for (int j = 1; j <= n - i; j++) {
                System.out.print(" ");
            }
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

参数化菱形绘制方法

将上述逻辑封装为可复用的方法,支持自定义菱形大小:

public static void printDiamond(int size) {
    if (size % 2 == 0) size++; // 确保为奇数行

    int mid = size / 2;
    for (int row = 0; row < size; row++) {
        int spaces = Math.abs(mid - row);
        int stars = size - 2 * spaces;

        System.out.println(" ".repeat(spaces) + "*".repeat(stars));
    }
}

使用图形库绘制

若需在图形界面中绘制,可使用Java的Graphics类:

import javax.swing.*;
import java.awt.*;

public class DiamondGUI extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        int[] xPoints = {100, 150, 100, 50};
        int[] yPoints = {50, 100, 150, 100};
        g.drawPolygon(xPoints, yPoints, 4);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.add(new DiamondGUI());
        frame.setSize(200, 200);
        frame.setVisible(true);
    }
}

空心菱形实现

修改星号输出逻辑即可实现空心效果:

for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n - i; j++) {
        System.out.print(" ");
    }
    for (int k = 1; k <= 2 * i - 1; k++) {
        System.out.print(k == 1 || k == 2*i-1 ? "*" : " ");
    }
    System.out.println();
}

数学公式说明

菱形每行的星号数量遵循等差数列:

JAVA如何画出菱形

  • 上半部分星号数:$a_i = 2i - 1$
  • 下半部分星号数:$a_i = 2(n-i) - 1$
  • 空格数:$s_i = |n - i|$

其中$n$为菱形中心行的星号数,$i$为当前行号。

标签: 菱形画出
分享给朋友:

相关文章

css怎么制作菱形

css怎么制作菱形

使用 CSS 制作菱形的方法 方法一:使用 transform 旋转正方形 通过创建一个正方形元素,并使用 transform: rotate(45deg) 将其旋转45度,可以生成菱形效果。 .d…

php实现菱形表单

php实现菱形表单

PHP 实现菱形表单的方法 在 PHP 中实现菱形表单,可以通过 HTML 和 CSS 结合 PHP 动态生成菱形布局的表单。以下是具体实现方法: 使用 HTML 和 CSS 创建菱形布局 HTML…

css怎么制作菱形

css怎么制作菱形

使用CSS制作菱形的方法 使用transform属性旋转正方形 通过将一个正方形元素旋转45度来生成菱形。这种方法简单直接,适用于需要纯色或简单背景的菱形。 .diamond { width:…

css菱形制作

css菱形制作

使用CSS制作菱形的方法 方法一:使用CSS transform属性旋转正方形 通过将一个正方形元素旋转45度来创建菱形效果。以下是实现代码: .diamond { width: 100px;…

php实现菱形

php实现菱形

使用循环打印菱形 在PHP中,可以通过嵌套循环实现菱形的打印。以下是一个示例代码,可以根据用户输入的行数打印出对应大小的菱形: <?php function printDiamond(…

php实现菱形表单

php实现菱形表单

实现菱形表单的方法 在PHP中实现菱形表单可以通过HTML和CSS结合PHP逻辑来完成。以下是具体的实现方法: HTML结构 <form method="post" action="">…