• Java绘制艺术图形


    本例主要是通过使用坐标轴平移,图形旋转和获得随机数等技术来绘制艺术图案。通过重写JPanel类中的paint()方法,并在该方法中使用Graphics2D类中的translate(),setColor(),ratate()和draw()方法来实现的。具体代码如下:

    1. 创建一个ArtDesignPanel类,继承JPanel类,来进行图形的绘制

     1 package com.example.artdesign.ui;
     2 
     3 import java.awt.Color;
     4 import java.awt.Graphics;
     5 import java.awt.Graphics2D;
     6 import java.awt.geom.Ellipse2D;
     7 import java.util.Random;
     8 
     9 import javax.swing.JPanel;
    10 
    11 /***
    12  * 创建内部面板类
    13  * @author lenovo'
    14  *
    15  */
    16 public class ArtDesignPanel extends JPanel{
    17 
    18     @Override
    19     public void paint(Graphics g) {  //重写paint方法
    20         // TODO Auto-generated method stub
    21         Graphics2D g2 = (Graphics2D)g;     //获得Graphics2D对象
    22         Ellipse2D.Float ellipse = new Ellipse2D.Float(-80, 5, 160, 10); //创建椭圆对象
    23         g2.translate(160, 90); //平移坐标轴
    24         
    25         Random random = new Random(); //获得随机数
    26         int R = random.nextInt(256);  //随机产生颜色的R值
    27         int G = random.nextInt(256);  //随机产生颜色的G值
    28         int B = random.nextInt(256);  //随机产生颜色的B值
    29         
    30         Color color = new Color(R,G,B);  //创建颜色对象
    31         g2.setColor(color);  //指定颜色
    32         g2.draw(ellipse);   //绘制椭圆
    33         
    34         int i = 0;
    35         while (i < 100) {
    36             
    37             R = random.nextInt(256);  //随机产生颜色的R值
    38             G = random.nextInt(256);  //随机产生颜色的G值
    39             B = random.nextInt(256);  //随机产生颜色的B值
    40             
    41             color = new Color(R,G,B);
    42             
    43             g2.setColor(color);
    44             g2.rotate(10);   //旋转画布
    45             g2.draw(ellipse);  //绘制椭圆
    46             
    47             i++;
    48         }
    49         
    50     }
    51 }
    ArtDesignPanel

    2. 创建一个ArtDesignFrame类,继承JFrame类,来加载ArtDesignPanel窗体。

    package com.example.artdesign.ui;
    
    import java.awt.Dimension;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    
    import javax.swing.JFrame;
    
    public class ArtDesignFrame extends JFrame{
    
        /**
         * 
         */
        private static final long serialVersionUID = -1760723807752896879L;
        
        public ArtDesignFrame() {
            // TODO Auto-generated constructor stub
            this.add(new ArtDesignPanel());
            this.addWindowListener(new WindowListener() {
                
                @Override
                public void windowOpened(WindowEvent arg0) {
                    // TODO Auto-generated method stub
                    
                }
                
                @Override
                public void windowIconified(WindowEvent arg0) {
                    // TODO Auto-generated method stub
                    
                }
                
                @Override
                public void windowDeiconified(WindowEvent arg0) {
                    // TODO Auto-generated method stub
                    
                }
                
                @Override
                public void windowDeactivated(WindowEvent arg0) {
                    // TODO Auto-generated method stub
                    
                }
                
                @Override
                public void windowClosing(WindowEvent arg0) {
                    // TODO Auto-generated method stub
                    
                }
                
                @Override
                public void windowClosed(WindowEvent arg0) {
                    // TODO Auto-generated method stub
                    System.exit(0);
                }
                
                @Override
                public void windowActivated(WindowEvent arg0) {
                    // TODO Auto-generated method stub
                    
                }
            });
            this.setVisible(true);
            
        }
        
        public static void main(String[] args) {
            ArtDesignFrame frame = new ArtDesignFrame();
            frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            frame.setSize(360, 360);
        }
    
    }
    ArtDesignFrame


    运行截图如下:

     文本摘自:《JAVA开发实例1200例》---王家林。

  • 相关阅读:
    apache phoenix查询缓慢问题
    hbase replication原理分析
    ServerSocketChannel实现多Selector高并发server
    hbase hmaster故障分析及解决方案:Timedout 300000ms waiting for namespace table to be assigned
    mapreduce出现类似死锁情况
    【转】How-to: Enable User Authentication and Authorization in Apache HBase
    最近的一些杂念思考
    我究竟该成为什么样的一个人
    解决linux下 使用netcore生成图片报错的问题:The type initializer for 'Gdip' threw an exception
    linux 编译安装nginx
  • 原文地址:https://www.cnblogs.com/tianyaxue/p/3172694.html
Copyright © 2020-2023  润新知