亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? beziersurfpaneldx.java

?? 計算機(jī)基本圖形的生成
?? JAVA
字號:
package graphics0;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import java.awt.geom.Line2D;
import javax.swing.*;

public class bezierSurfPanelDX
    extends JPanel {
  BorderLayout borderLayout = new BorderLayout();
  Point[][] ControlPoints = new Point[4][4];
  int i, j, k, h, flag = 0;
  Panel pdown;
  Button process;

  public bezierSurfPanelDX() {
    this.setLayout(borderLayout);
    pdown = new Panel();
    process = new Button();
    process.setLabel("GO");
    pdown.setBackground(Color.pink);
    this.add(pdown, BorderLayout.SOUTH);
    pdown.add(process);

    for (i = 0; i < 4; i++) {
      for (j = 0; j < 4; j++) {
        ControlPoints[i][j] = new Point( (j + 1) * 80, (i + 1) * 80);
      }
    }

    addMouseListener(new MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        panel_mousePressed(e);
      }
    });

    addMouseMotionListener(new MouseMotionAdapter() {
      public void mouseDragged(MouseEvent e) {
        panel_mouseDragged(e);
      }
    });

    process.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        process_actionPerformed(e);
      }
    });
  }

  public void panel_mousePressed(MouseEvent e) {
    flag = 0;
    Graphics g = getGraphics();
    int[] ax = new int[4];
    int[] ay = new int[4];
    int x0 = e.getX();
    int y0 = e.getY();
    Polygon a;
    for (i = 0; i < 4; i++) {
      for (j = 0; j < 4; j++) {
        ax[0] = ControlPoints[i][j].x - 10;
        ax[1] = ControlPoints[i][j].x + 10;
        ax[2] = ControlPoints[i][j].x + 10;
        ax[3] = ControlPoints[i][j].x - 10;
        ay[0] = ControlPoints[i][j].y - 10;
        ay[1] = ControlPoints[i][j].y - 10;
        ay[2] = ControlPoints[i][j].y + 10;
        ay[3] = ControlPoints[i][j].y + 10;
        a = new Polygon(ax, ay, 4);
        if (a.contains(x0, y0)) {
          k = i;
          h = j;
          flag = 1;
          break;
        }
      }
    }
  }

  public void panel_mouseDragged(MouseEvent e) {
    Graphics g = getGraphics();
    if (flag == 1) {
      int x1 = e.getX();
      int y1 = e.getY();
      ControlPoints[k][h].x = x1;
      ControlPoints[k][h].y = y1;
      repaint();
    }
  }

  public void process_actionPerformed(ActionEvent e) {
    Graphics g = getGraphics();
    curve_generation(g, ControlPoints);
  }

  public void paint(Graphics g) {
    g.setColor(Color.lightGray);
    for (i = 0; i <= 3; i++) {
      for (j = 0; j <= 2; j++) {
        g.drawLine(ControlPoints[i][j].x, ControlPoints[i][j].y,
                   ControlPoints[i][j + 1].x, ControlPoints[i][j + 1].y);
        g.drawLine(ControlPoints[j][i].x, ControlPoints[j][i].y,
                   ControlPoints[j + 1][i].x, ControlPoints[j + 1][i].y);
      }
    }
  }

  void curve_generation(Graphics g, Point[][] p) {
    Point[][] R = new Point[4][4];
    Point[][] W = new Point[4][4];
    Point[][] G = new Point[4][4];
    Point[][] Q = new Point[4][4];
    Point[][][] result = new Point[4][4][4];
    Vector v = new Vector();
    int k, xx, yy, i, j, kk;
    double m;
    m = 0.0D;

    for (k = 0; k <= 3; k++) {
      double temp1, temp2, temp3;
//			temp1=Math.max(distance(p[k][1],p[k][0],p[k][3]),distance(p[k][2],p[k][0],p[k][3]));
//			temp2=Math.max(distance(p[1][k],p[0][k],p[3][k]),distance(p[2][k],p[0][k],p[3][k]));
      temp1 = Math.max(distance(p[k][0], p[k][1]), distance(p[k][1], p[k][2]));
      temp2 = Math.max(distance(p[k][2], p[k][3]), distance(p[0][k], p[1][k]));
      temp3 = Math.max(distance(p[1][k], p[2][k]), distance(p[2][k], p[3][k]));
      if (temp1 > m) {
        m = temp1;
      }
      if (temp2 > m) {
        m = temp2;
      }
      if (temp3 > m) {
        m = temp3;
      }
    }

    if (m >= 5) {
      result = curve_split(p);
      for (i = 0; i <= 3; i++) {
        for (j = 0; j <= 3; j++) {
          for (k = 0; k <= 3; k++) {
            v.addElement(result[i][j][k]);
          }
        }
      }
      int s = v.size();
      for (k = 0; k <= 3; k++) {
        for (i = 0; i <= 3; i++) {
          for (j = 0; j <= 3; j++) {
            W[i][j] = (Point) v.get(s - 1);
            v.remove(s - 1);
            s = s - 1;
          }
        }
        curve_generation(g, W);
      }
    }

    else {
      System.out.println("m=" + m);
      for (int z = 0; z <= 3; z++) {
        g.drawLine(p[z][0].x, p[z][0].y, p[z][3].x, p[z][3].y);
        g.drawLine(p[0][z].x, p[0][z].y, p[3][z].x, p[3][z].y);
      }
    }
  }

  Point[][][] curve_split(Point[][] p) {
    int i, j, h, a, b, c, xx, yy;
    Point[][] R = new Point[4][4];
    Point[][] W = new Point[4][4];
    Point[][] G = new Point[4][4];
    Point[][] Q = new Point[4][4];
    Point[][][] result = new Point[4][4][4];
    System.arraycopy(p, 0, G, 0, p.length);

    int n = 3;
    int m = 3;

    for (j = 0; j <= m; j++) {
      for (i = 1; i <= n; i++) {
        R[n + 1 - i][j] = new Point(G[n][j].x, G[n][j].y);
        for (h = n; h >= i; h--) {
          G[h][j].x = (G[h - 1][j].x + G[h][j].x) / 2;
          G[h][j].y = (G[h - 1][j].y + G[h][j].y) / 2;
        }
      }
      R[0][j] = new Point(G[n][j].x, G[n][j].y);
    }

    for (a = 0; a <= n; a++) {
      for (b = 1; b <= m; b++) {
        Q[a][m + 1 - b] = new Point(G[a][m].x, G[a][m].y);
        W[a][m + 1 - b] = new Point(R[a][m].x, R[a][m].y);
        for (c = m; c >= b; c--) {
          G[a][c].x = (G[a][c].x + G[a][c - 1].x) / 2;
          G[a][c].y = (G[a][c].y + G[a][c - 1].y) / 2;
          R[a][c].x = (R[a][c].x + R[a][c - 1].x) / 2;
          R[a][c].y = (R[a][c].y + R[a][c - 1].y) / 2;
        }
      }
      Q[a][0] = new Point(G[a][m].x, G[a][m].y);
      W[a][0] = new Point(R[a][m].x, R[a][m].y);
    }
    for (xx = 0; xx <= 3; xx++) {
      for (yy = 0; yy <= 3; yy++) {
        result[0][xx][yy] = new Point(G[xx][yy].x, G[xx][yy].y);
        result[1][xx][yy] = new Point(Q[xx][yy].x, Q[xx][yy].y);
        result[2][xx][yy] = new Point(R[xx][yy].x, R[xx][yy].y);
        result[3][xx][yy] = new Point(W[xx][yy].x, W[xx][yy].y);
      }
    }
    return result;
  }

  double distance(Point p1, Point p2, Point p3) {
    double d;
    Line2D.Float line = new Line2D.Float(p2.x, p2.y, p3.x, p3.y);
    d = line.ptLineDist(p1);
    return d;
  }

  double distance(Point p1, Point p2) {
    double d;
    d = p1.distance(p2);
    return d;
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美va日韩va| 欧美在线综合视频| 亚洲欧洲美洲综合色网| 色综合天天综合狠狠| 日韩综合小视频| 欧美色图12p| 精品一区在线看| 亚洲人成网站影音先锋播放| 欧美日韩久久久| 国产一区二区在线免费观看| 中文字幕综合网| 日韩视频一区二区| 91视频在线观看| 亚洲一区二区偷拍精品| 欧美成人官网二区| 91美女片黄在线| 男女男精品视频网| 亚洲欧洲国产专区| 精品捆绑美女sm三区| 99re6这里只有精品视频在线观看| 午夜精品影院在线观看| 国产欧美日韩另类一区| 在线观看免费成人| 国产综合久久久久久鬼色| 亚洲黄色录像片| 久久久精品日韩欧美| 欧美精品在欧美一区二区少妇| 蜜桃视频在线一区| 伊人色综合久久天天| 国产亚洲一区二区在线观看| 欧美日韩免费观看一区三区| 成人免费va视频| 精品一区二区久久久| 亚洲精品免费看| 久久日韩粉嫩一区二区三区| 欧美一区二区观看视频| 91成人在线免费观看| 丁香亚洲综合激情啪啪综合| 久久99久国产精品黄毛片色诱| 综合婷婷亚洲小说| 欧美成va人片在线观看| 欧美一级免费大片| 欧美日韩国产一级| 欧美在线视频你懂得| 成人不卡免费av| 国产99精品在线观看| 国产麻豆午夜三级精品| 久久国产精品露脸对白| 午夜精品一区二区三区三上悠亚| 亚洲精品一二三区| 亚洲天堂免费在线观看视频| 国产精品丝袜一区| 国产精品午夜在线观看| 久久精品一区二区三区不卡| 精品国产在天天线2019| 777欧美精品| 91精品国产综合久久久久久久 | 成人欧美一区二区三区小说 | 国产精品不卡一区| 久久久国产午夜精品| 精品精品国产高清一毛片一天堂| 在线一区二区视频| 在线视频一区二区三| 97se亚洲国产综合在线| 91麻豆精品在线观看| 99久久亚洲一区二区三区青草| 麻豆国产一区二区| 久久se精品一区二区| 九九视频精品免费| 国产精品一品二品| 成人短视频下载| 91色婷婷久久久久合中文| 成人网在线免费视频| av中文字幕在线不卡| 99精品国产91久久久久久| 色婷婷av一区| 色婷婷亚洲精品| 欧美性视频一区二区三区| 欧美日韩免费高清一区色橹橹| 91麻豆精品国产| 精品日韩99亚洲| 欧美变态tickling挠脚心| 久久久国际精品| 综合在线观看色| 亚洲超碰精品一区二区| 日本欧美一区二区三区乱码 | 亚洲午夜在线电影| 亚洲丰满少妇videoshd| 日韩黄色免费网站| 国内外成人在线| 成人一级黄色片| www.亚洲人| 欧美男生操女生| 久久视频一区二区| 国产精品久99| 日韩va亚洲va欧美va久久| 国产精品一区二区久久不卡| 欧美日本国产一区| 中文字幕在线视频一区| 麻豆91免费观看| av电影在线观看一区| 欧美蜜桃一区二区三区| 国产免费成人在线视频| 欧美日韩高清在线播放| 亚洲精品精品亚洲| 久久伊99综合婷婷久久伊| 欧美一级淫片007| 国产精品色哟哟网站| 亚洲成a人片在线观看中文| 另类中文字幕网| 97se亚洲国产综合自在线 | 91美女在线观看| 日韩一级大片在线| 成人欧美一区二区三区视频网页 | 91成人免费在线视频| 国产欧美一区二区精品秋霞影院| 一区二区三区在线观看国产| 成人毛片视频在线观看| 久久综合色8888| 日av在线不卡| 欧美日韩国产另类不卡| 亚洲资源在线观看| 在线欧美日韩国产| √…a在线天堂一区| 国产91精品一区二区麻豆网站| 欧美va天堂va视频va在线| 日韩专区欧美专区| 欧美日本视频在线| 亚洲成人在线免费| 欧美日韩精品高清| 午夜精品福利在线| 欧美日韩精品电影| 日本va欧美va精品发布| 欧美一二三区在线| 日韩二区在线观看| 欧美一卡二卡在线| 免费在线一区观看| 日韩美一区二区三区| 久久国产视频网| xvideos.蜜桃一区二区| 国产一区二区三区四区在线观看 | 欧美tickle裸体挠脚心vk| 久久er99热精品一区二区| 精品国产免费人成在线观看| 激情小说亚洲一区| 国产无一区二区| 99久久久无码国产精品| 国产精品国产自产拍在线| 99久精品国产| 亚洲国产精品久久久久婷婷884 | 欧美日本一道本| 蜜臂av日日欢夜夜爽一区| 久久先锋影音av| 99视频热这里只有精品免费| 亚洲精品国产高清久久伦理二区| 日本高清无吗v一区| 日韩中文字幕区一区有砖一区| 欧美一区中文字幕| 狠狠色丁香久久婷婷综合_中| 国产视频一区二区在线| 91蝌蚪porny九色| 午夜在线成人av| 精品国内片67194| 成人免费视频一区| 亚洲一区视频在线| 日韩午夜小视频| 国产成人精品免费在线| 综合久久国产九一剧情麻豆| 欧美精品视频www在线观看| 国内精品在线播放| 亚洲视频中文字幕| 777午夜精品视频在线播放| 国产精品一二三四区| 亚洲欧美日韩在线| 欧美变态口味重另类| www.欧美色图| 午夜视频在线观看一区| 久久久久国产精品人| 欧美午夜精品久久久久久孕妇| 青青草原综合久久大伊人精品| 欧美国产亚洲另类动漫| 欧美情侣在线播放| 国产成人h网站| 亚洲在线观看免费| 国产欧美综合在线| 欧美日韩一二三| 国产乱理伦片在线观看夜一区| 亚洲精选在线视频| 久久伊人中文字幕| 欧美男男青年gay1069videost | 91在线看国产| 久久成人综合网| 亚洲久本草在线中文字幕| 久久久亚洲欧洲日产国码αv| 欧美色图天堂网| 久久久亚洲精品石原莉奈| 91精品办公室少妇高潮对白| 国产黑丝在线一区二区三区| 舔着乳尖日韩一区| 亚洲欧美怡红院|