用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);
});
}
}