• Java实现画八卦


    八卦是由多个圆叠加而成,如果我们让每个圆都有自己的颜色,那么具体结构便一目了然,如下图所示:

    显然只要令对应的圆颜色相同,就能达到我们预期的效果。

    用Java就能轻松画出来:

    import java.awt.BasicStroke;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.RenderingHints;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    public class BaGua extends JPanel {
    
        public BaGua() {
            this.setPreferredSize(new Dimension(600, 580)); // 设置首选大小
        }
    
        /**
         * 画八卦
         */
        public void drawBaGua(Graphics2D g2d) {
            Color color1 = Color.WHITE; // 颜色1
            Color color2 = Color.BLACK; // 颜色2
    
            // 抗边缘锯齿
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON);
    
            // 画背景
            // g2d.clearRect(0, 0, this.getWidth(), this.getHeight());
            g2d.setColor(new Color(220, 230, 240));
            g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
    
            // 画左半边大圆白背景
            g2d.setColor(color1);
            g2d.fillArc(100, 100, 400, 400, 90, 180);
            // 画右半边大圆黑背景
            g2d.setColor(color2);
            g2d.fillArc(100, 100, 400, 400, -90, 180);
    
            // 画上面白色圆
            g2d.setColor(color1);
            g2d.fillOval(200, 100, 200, 200);
            // 画下面黑色圆
            g2d.setColor(color2);
            g2d.fillOval(200, 300, 200, 200);
    
            // 画上面白色圆内的小黑圆
            g2d.setColor(color2);
            g2d.fillOval(270, 170, 60, 60);
            // 画下面黑色圆内的小白圆
            g2d.setColor(color1);
            g2d.fillOval(270, 370, 60, 60);
    
            // 画边缘的黑弧线
            g2d.setStroke(new BasicStroke(2)); // 设置画笔宽度
            g2d.setColor(color2);
            // g2d.drawArc(100, 100, 400, 400, 0, 360);
            g2d.drawOval(100, 100, 400, 400);
        }
    
        public void paint(Graphics g) {
            drawBaGua((Graphics2D) g);
        }
    
        public static void main(String[] args) {
            JFrame win = new JFrame("八卦");
            win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            win.add(new BaGua());
            win.pack();
            win.setLocationRelativeTo(null);
            win.setVisible(true);
        }
    }

    运行结果:

  • 相关阅读:
    高中时代的记忆
    winscp连接vmware ubuntu
    linux下mysql环境支持中文配置步骤
    mysql中常用的语句整理
    linux服务器伪分布模式安装hadoop-1.1.2
    linux运维常用命令
    hbase 单机模式安装
    灰度发布
    HDU 5269 ZYB loves Xor I
    HDU 5536 Chip Factory
  • 原文地址:https://www.cnblogs.com/wuqianling/p/5895629.html
Copyright © 2020-2023  润新知