<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    march alex's blog
    hello,I am march alex
    posts - 52,comments - 7,trackbacks - 0
    RandomRectangles類中的X、Y和n分別代表生成舉行的橫坐標范圍、縱坐標范圍和個數。
    FrameWork類用于演示。

    RandomRectangle.java

    public class RandomRectangles {
        private static final int maxn = 1010;
        private static double[] x = new double[maxn];
        private static double[] y = new double[maxn];
        private static double[] w = new double[maxn];
        private static double[] h =new double[maxn];
        private static double[] xmax = new double[maxn];
        private static double[] ymax = new double[maxn];
        private static double[] xx = new double[maxn];
        private static double[] yy = new double[maxn];
        private static double X = 1000;
        private static double Y = 600;
        private static int n = 2;
        private static double[][] ans = new double[n][4];
        private static int cmp(int i, int j) {
            if(y[i] < y[j] || y[i] == y[j] && x[i] < x[j]) return -1;
            return 1;
        }
        private static void sort(int l, int r) {
            if(l == r) return;
            int mid = (l + r) >> 1;
            sort(l, mid);
            sort(mid+1, r);
            int i = l, j = mid + 1, k = l;
            while(i <= mid || j <= r) {
                if(i > mid) {
                    xx[k] = x[j];
                    yy[k++] = y[j++];
                }
                else if(j > r) {
                    xx[k] = x[i];
                    yy[k++] = y[i++];
                }
                else if(cmp(i,j) == -1) {
                    xx[k] = x[i];
                    yy[k++] = y[i++];
                }
                else {
                    xx[k] = x[j];
                    yy[k++] = y[j++];
                }
            }
            for(i=l;i<=r;i++) {
                x[i] = xx[i];
                y[i] = yy[i];
            }
            return;
        }
        private static boolean create_points() {
            for(int i=0;i<n;i++) {
                xmax[i] = X;
                ymax[i] = Y;
                x[i] = Math.random() * X;
                y[i] = Math.random() * Y;
            }
            sort(0, n-1);
            for(int i=0;i<n-1;i++) {
                if(y[i] == y[i+1] && x[i] == x[i+1]) return false;
            }
            return true;
        }
        public static double[][] getData() {
            while(true) {
                if(create_points() == truebreak;
            }
            for(int i=0;i<n-1;i++) {
                if(y[i] == y[i+1]) xmax[i] = x[i];
            }
            for(int i=0;i<n;i++) {
                w[i] = Math.random() * (xmax[i] - x[i]);
                for(int j=i+1;j<n;j++) {
                    if(x[j] >= x[i] && x[j] <= x[i]+w[i]) {
                        ymax[i] = y[j];
                        break;
                    }
                }
                h[i] = Math.random() * (ymax[i] - y[i]);
                for(int j=i+1;j<n;j++) {
                    if(x[j] < x[i] && y[j] >= y[i] && y[j] <= y[i]+h[i]) {
                        xmax[j] = xmax[j] < x[j] ? xmax[j] : x[j];
                    }
                }
            }
            for(int i=0;i<n;i++) {
                ans[i][0] = x[i];
                ans[i][1] = y[i];
                ans[i][2] = w[i];
                ans[i][3] = h[i];
            }
            return ans;
        }
        public static void main(String[] args) {
            ans = getData();
            System.out.println(ans[2][2]);
        }
    }

    FrameWork.java
    import java.awt.Color; import java.awt.FlowLayout;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.image.BufferedImage;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;

    import javax.imageio.ImageIO;
    import javax.swing.ImageIcon;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;


    public class FrameWork extends JFrame {
        
        private static final double pi = Math.acos(-1.0);
        private static final int Width = 1200;
        private static final int Height = 800;
        private static JFrame frame = null;
        
        
        public FrameWork() {
             setDefaultCloseOperation(EXIT_ON_CLOSE);
             setLocationRelativeTo(null);
             setSize(Width, Height);
             setResizable(false);
             getContentPane().setLayout(null);
             JPanel panel = new ImagePanel();
             panel.setBounds(0, 0, Width, Height);
             getContentPane().add(panel);
             setVisible(true);
        }
        
        class ImagePanel extends JPanel {
            public void paint(Graphics g) {
                super.paint(g);
                g.setColor(Color.white);
                g.fillRect(0, 0, Width, Height);
                g.setColor(Color.black);
                double[][] ans = RandomRectangles.getData();
                for(int i=0;i<ans.length;i++) {
                    double x0 = ans[i][0];
                    double y0 = ans[i][1];
                    double x1 = x0 + ans[i][2];
                    double y1 = y0 + ans[i][3];
                    System.out.println(x0 + " " + y0 + " " + x1 + " " + y1);
                }
                for(int i=0;i<ans.length;i++)
                    g.drawRect((int)ans[i][0], (int)ans[i][1], (int)ans[i][2], (int)ans[i][3]);
            }
        }
        
        public static void main(String[] args) {
            new FrameWork();
        }
    }
    posted on 2015-04-15 20:27 marchalex 閱讀(368) 評論(0)  編輯  收藏 所屬分類: java小程序
    主站蜘蛛池模板: 亚洲av一综合av一区| 国产一级婬片A视频免费观看| 免费无码中文字幕A级毛片| 黑人大战亚洲人精品一区| 亚洲美女人黄网成人女| 99精品免费观看| 无码专区—VA亚洲V天堂| 七色永久性tv网站免费看| 精品久久久久国产免费| 久久久久久亚洲精品影院| 免费观看成人毛片a片2008| 国产AV旡码专区亚洲AV苍井空| 57PAO成人国产永久免费视频| 亚洲第一区在线观看| 亚洲国产免费综合| 亚洲精品自产拍在线观看| 久爱免费观看在线网站| 亚洲欧洲国产成人精品| 青青青国产免费一夜七次郎| 亚洲成av人片天堂网无码】| xxxx日本免费| 亚洲国产人成在线观看69网站| 一级成人生活片免费看| 毛片免费观看的视频| 亚洲国产精品久久久久秋霞小| 四虎精品亚洲一区二区三区| 久久精品免费网站网| 亚洲国产成人久久精品99| 精品一区二区三区免费 | 亚洲黄片毛片在线观看| 亚洲日本在线免费观看| 国产男女性潮高清免费网站| 久久精品成人免费观看97| 亚洲日本香蕉视频| 国产免费牲交视频| 亚洲人成网站999久久久综合| 日本一区二区三区免费高清| 91在线亚洲精品专区| 国产一级特黄高清免费大片| 国产一级一毛免费黄片| 亚洲乳大丰满中文字幕|