用java画一个抽奖时用的圆盘,感觉还挺好看的。

用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);
        });
    }
}
相关推荐
冻柠檬飞冰走茶9 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法
wangchen_09 小时前
C++正则表达式
开发语言·c++·正则表达式
何以解忧,唯有..9 小时前
Python 元组(tuple)详解:使用、遍历与排序
开发语言·python
KANGBboy9 小时前
Python eval安全隐患
开发语言·python
IT爱学堂9 小时前
java版数据结构和算法+AI算法和技能学习指南
java·开发语言
evans在进步10 小时前
LeetCode 394:字符串解码——Java 单栈模拟与嵌套解析详解
java·python·leetcode
淼澄研学10 小时前
Python结合大模型挖掘搜题长尾关键词实操指南
开发语言·python
FfHUCisI10 小时前
Golang - 信号量模式(Semaphore Pattern)
开发语言·后端·golang
m0_5474866610 小时前
《Java程序设计与实践 》全套PPT课件2026
java·开发语言
土司大王11 小时前
LeetCode hto100——字母异位词分组
java·算法·leetcode