【JAVA】精致的五角星

发布于:2024-06-23 ⋅ 阅读:(42) ⋅ 点赞:(0)

      输出的这幅图像中,一颗精致的金色五角星跃然于深红色背景之上,绽放出迷人的光彩。

     要绘画这颗五角星,首先要了解五角星的构造和角度问题。我们可以分为内五边形,和外五边形。内五边形从他的中心到每个外点,连接起来,有五个内角,每个内角是72度。外五边形的五个点,可以看作是内五边形的延长线,所以外五点的连线,每个角是18度。通过计算,再结合正弦定律,内径和外径的比例为sin18和sin126.所以他们的比例是809:309.

开始编程

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

public class DrawStarExample extends JPanel {

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        int centerX = getWidth() / 2;
        int centerY = getHeight() / 2;
        int radius = (int)(centerX*0.9);
        int outerRadius = (int)(radius*0.809);
        int innerRadius = (int)(radius * 0.309);
        int[] xPoints = new int[10];
        int[] yPoints = new int[10];

        for (int i = 0; i < 10; i++) {
            int v = i * 36 ;
            double angle = Math.toRadians(v);
            if (i % 2 == 0) {
                xPoints[i] = (int)(centerX + outerRadius * Math.cos(angle));
                yPoints[i] = (int)(centerY + outerRadius * Math.sin(angle));
            } else {
                xPoints[i] = (int)(centerX + innerRadius * Math.cos(angle));
                yPoints[i] = (int)(centerY + innerRadius * Math.sin(angle));
            }
        }

        // 绘制五角星
        g.setColor(Color.yellow);
        g.fillPolygon(xPoints, yPoints, 10);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("我的五角星");
        DrawStarExample panel = new DrawStarExample();
        panel.setBackground(Color.red);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(panel);
        frame.setSize(1000, 1000);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

输出结果


网站公告

今日签到

点亮在社区的每一天
去签到