用java画一个抽奖时用的圆盘,感觉还挺好看的。请看封面样式,就是样例。不过是随机的。每一次都不一样。
import javax.swing.*; import java.awt.*; import java.awt.geom.Arc2D; import java.util.Random; public class PaintDisc extends JPanel { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); int centerX = getWidth() / 2; int centerY = getHeight() / 2; int radius = Math.min(getWidth(), getHeight()) / 2; int petalCount = 12; double startAngle = 0; for (int i = 0; i < petalCount; i++) { g2.setColor(new Color(getRandomIntIn255(),getRandomIntIn255(),getRandomIntIn255())); double angle = Math.toRadians(startAngle + i * 360.0 / petalCount); int x = (int) (centerX + radius * Math.cos(angle)); int y = (int) (centerY + radius * Math.sin(angle)); Arc2D arc = new Arc2D.Double(centerX - radius, centerY - radius, radius * 2, radius * 2, startAngle + i * 360.0 / petalCount, 45, Arc2D.PIE); g2.fill(arc); } } public static int getRandomIntIn255() { Random random = new Random(); return random.nextInt(256); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> { JFrame frame = new JFrame("用java画一个抽奖时用的圆盘"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new PaintDisc()); frame.setSize(800, 800); frame.setLocationRelativeTo(null); frame.setVisible(true); }); } }