输出的这幅图像中,一颗精致的金色五角星跃然于深红色背景之上,绽放出迷人的光彩。
要绘画这颗五角星,首先要了解五角星的构造和角度问题。我们可以分为内五边形,和外五边形。内五边形从他的中心到每个外点,连接起来,有五个内角,每个内角是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); }
输出结果