zoukankan      html  css  js  c++  java
  • 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);
        }
    }

    运行结果:

  • 相关阅读:
    查询session内容
    7个月工作总结
    clob字段的值插入和查询N种方法【包括java调用存储过程传入clob参数】
    javascript实现jsp页面的打印预览
    Ext:添加进度条
    js实现非模态窗口增加数据后刷新父窗口数据
    websphere:rs.getDate()无法使用的解决方法
    POI实现excel各种验证和导入的思路总结
    Tomcat迁移到WebsphereURL获取中文参数乱码问题
    JS函数参数
  • 原文地址:https://www.cnblogs.com/wuqianling/p/5895629.html
Copyright © 2011-2022 走看看