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

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

?? drawpanel.java

?? 計算機基本圖形的生成
?? JAVA
字號:
package graphics0;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.awt.image.*;

/**
 * <p>Title: computer graphics </p>
 * <p>Description: homeworks</p>
 * <p>Copyright: Copyright (c) 2004 </p>
 * <p>Company: shu</p>
 * @author dxf
 * @version 1.0
 */

public class DrawPanel
    extends JPanel {
  BufferedImage bi;
  Graphics2D big;
  Vector v2D,vp;
  int clickCount, lWidth, lStyle;
  Color FrColor, BkColor;
  Point spoint, epoint,p0;
  int iObject, iLine, iSelect;
  int iFillMethod, iClipMethod;

  Frame frame;

  public DrawPanel(Frame f) {
    v2D = new Vector();
    frame = f;
    spoint = new Point(0, 0);
    epoint = new Point(0, 0);
    FrColor = Color.BLACK;
    BkColor = Color.WHITE;

    bi = new BufferedImage(Object2D.cWidth, Object2D.cHeight, BufferedImage.TYPE_INT_RGB);
    big = bi.createGraphics();
    big.setBackground(BkColor);
    big.clearRect(0, 0, Object2D.cWidth, Object2D.cHeight);

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

  }

////////////////////////////////////////////////////////////////////
  public void Clear() {
    v2D.clear();
    clickCount = 0;
    big.clearRect(0, 0, Object2D.cWidth, Object2D.cHeight);
    if (frame.jCheckBoxMenuItemDemo.isSelected()) {
      DrawGrid();
    }
    repaint();
  }

///////////////////////////////////////////////////////////////////////
  public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2D = (Graphics2D) g;
    g2D.drawImage(bi, 0, 0, this);
  }

/////////////////////////////////////////////////////////////////////
  public void panel_mouseClicked(MouseEvent e) {
    if (2==e.getClickCount()) {
      v2D.addElement(new PolygonDx(vp));
      vp.add(new Point(e.getPoint()));
      DrawPloygon((Point)(vp.lastElement()),(Point)(vp.firstElement()));
      vp.clear();
      clickCount = 0;
    }
    if (frame.jTBtnCentre.isSelected()) {
      frame.jTFCX.setText(Integer.toString(e.getPoint().x));
      frame.jTFCY.setText(Integer.toString(e.getPoint().y));
    }
  }

//////////////////////////////////////////////////////////////////////
  public void panel_mousePressed(MouseEvent e) {
    Graphics g = this.getGraphics();
    clickCount++;
    g.drawString(e.getX() + "," + e.getY(), e.getX(), e.getY());
    //////////////////////////////////////////////////////////
    //Line,circle,ellipse
    if (0 == iSelect) {
      if (clickCount == 1) {
        spoint = e.getPoint();
      }
      if (clickCount == 2) {
        epoint = e.getPoint();
        Draw2D();
      }
    }
    ///////////////////////////////////////////////////////////
    //Fill
    if (1 == iSelect) {
    //  if (clickCount == 1) {
        spoint = e.getPoint();
        Fill();
     // }
    }
    ///////////////////////////////////////////////////////////////
    //plygon
    if (2 == iSelect) {
      if (vp.size()>0) {
        p0 = (Point) (vp.lastElement());
      }
      else {
        p0 = e.getPoint();
        lWidth = Integer.parseInt(frame.jTextFieldLWidth.getText());
        lStyle = frame.jComboBoxL.getSelectedIndex();
      }

      DrawPloygon(e.getPoint(), p0);
      vp.add(new Point(e.getPoint()));
    }
    /////////////////////////////////////////////////////////////////////////
    if (3 == iSelect) {
      if (clickCount == 1) {
        spoint = e.getPoint();
      }
      if (clickCount == 2) {
        epoint = e.getPoint();
        LineWidowClip(spoint,epoint) ;
      }

    }
    /////////////////////////////////////////////////////////////////////////
    if (4 == iSelect) {
      if (clickCount == 1) {
        spoint = e.getPoint();
      }
      if (clickCount == 2) {
        epoint = e.getPoint();
        PolygonWidowClip(spoint,epoint) ;
      }

    }

  }
////////////////////////////////////////////////////////////////////////////////
  void LineWidowClip(Point sp,Point ep)  {
    LineDx l0 = (LineDx)(v2D.lastElement());

    big.drawRect(spoint.x,spoint.y,Math.abs(epoint.x -spoint.x),
                 Math.abs(epoint.y-spoint.y));
    //repaint();

    if (0==iClipMethod){
      Object2D.CS_LineClip(l0.spoint, l0.epoint, sp, ep, BkColor, big);
    }
    if (1==iClipMethod){
      Object2D.Mid_LineClip(l0.spoint, l0.epoint, sp, ep,BkColor, big);
    }

    repaint();
  }
///////////////////////////////////////////////////////////////////////////////
  void PolygonWidowClip(Point sp,Point ep)  {
    PolygonDx tmp = (PolygonDx)(v2D.lastElement());
    big.clearRect(0, 0, Object2D.cWidth, Object2D.cHeight);
    tmp.draw(big);
    tmp.ForeColor = FrColor;
    big.setColor(Color.RED);
    big.drawRect(spoint.x,spoint.y,Math.abs(epoint.x -spoint.x),
                 Math.abs(epoint.y-spoint.y));

    tmp.SHClip(iClipMethod,spoint,epoint,this);
    repaint();
  }

////////////////////////////////////////////////////////////////////////////////
  void DrawPloygon(Point sp,Point ep)  {
    //0=虛 1=實 2=點
     //Line
     LineDx l= new LineDx(sp, ep, 1, FrColor, lWidth,lStyle);
     l.draw(big);
     repaint();

  }
///////////////////////////////////////////////////////////////////////////////
  void Fill() {
    switch (iFillMethod) {
      case 0: {
        try {
          Object2D.FloodFill4(spoint.x, spoint.y, FrColor, BkColor, bi, big);
        }
        finally {
          clickCount = 0;
        }

        break;
      }
      case 1: {
        try {
          Object2D.FloodFill8(spoint.x, spoint.y, FrColor, BkColor, bi, big);
        }
        finally {
          clickCount = 0;
        }
        break;
      }
      case 2: {
        try {
          int ic;
          ic = bi.getRGB(spoint.x,spoint.y);
          Object2D.ScanLineFill4(spoint.x, spoint.y, ic, BkColor, bi, big);
       }
        finally {
          clickCount = 0;
        }
        break;
      }
       case 3: {
          try {
            ((PolygonDx)v2D.lastElement()).polyfill(BkColor, big);
          }
          finally {
            clickCount = 0;
          }
          break;
      }
    }

    repaint();
  }

/////////////////////////////////////////////////////////////////////////////
  void DrawGrid() {
    big.setColor(Color.black);
    int j = Object2D.DemoWidth * 2;
    for (int i = 0; i < Object2D.cWidth; i = i + j) {
      big.drawLine(i, 0, i, Object2D.cHeight);
    }
    for (int i = 0; i < Object2D.cHeight; i = i + j) {
      big.drawLine(0, i, Object2D.cWidth, i);
    }
    repaint();
  }

/////////////////////////////////////////////////////////////////////////////
  void Draw2D() {
    lWidth = Integer.parseInt(frame.jTextFieldLWidth.getText());
    lStyle = frame.jComboBoxL.getSelectedIndex();
    //0=虛 1=實 2=點

    switch (iObject) {
      case 0: {
        //Line
        v2D.addElement(new LineDx(spoint, epoint, iLine, FrColor, lWidth,
                                  lStyle));
        break;
      }
      case 1: {
        //Circle
        double tmp = (epoint.x - spoint.x) * (epoint.x - spoint.x) +
            (epoint.y - spoint.y) * (epoint.y - spoint.y);
        tmp = Math.sqrt(tmp);

        v2D.addElement(new CircleDx(spoint, 0, (int) tmp, (int) tmp, FrColor,
                                    BkColor,
                                    lWidth, lStyle, frame.jRBtnFill.isSelected()));
        break;
      }
      case 2: {
        //Ellipse
        v2D.addElement(new CircleDx(spoint, 1, Math.abs(epoint.x - spoint.x),
                                    Math.abs(epoint.y - spoint.y), FrColor,
                                    BkColor,
                                    lWidth, lStyle, frame.jRBtnFill.isSelected()));
        break;
      }
    }
    clickCount = 0;
    ( (Object2D) v2D.lastElement()).draw(big);

    if (frame.jCheckBoxMenuItemDemo.isSelected()) {
      ( (Object2D) v2D.lastElement()).drawDemo(big);
    }

    repaint();

  }
///////////////////////////////////////////////////////////////////////////////
  void  Translate(int x, int y) {
    ( (Object2D) v2D.lastElement()).translate(x,y);
    ( (Object2D) v2D.lastElement()).draw(big);
    repaint();
  }
///////////////////////////////////////////////////////////////////////////////
  void Scale(double sx, double sy) {
    ( (Object2D) v2D.lastElement()).scale(sx,sy);
    ( (Object2D) v2D.lastElement()).draw(big);
    repaint();
  }
////////////////////////////////////////////////////////////////////////////////
  void Rotate(double theta, int x, int y){
    ((Object2D) v2D.lastElement()).rotate(theta,x,y);
    ((Object2D) v2D.lastElement()).draw(big);
    repaint();

  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清免费视频| 精品久久久久久无| 亚洲国产乱码最新视频| 在线观看国产日韩| 亚洲v日本v欧美v久久精品| 欧美高清视频在线高清观看mv色露露十八| 亚洲mv在线观看| 日韩欧美中文字幕公布| 国产成人免费在线视频| 一区二区三区在线视频免费| 欧美日韩一区二区电影| 激情五月婷婷综合网| 国产精品素人一区二区| 欧美体内she精视频| 蜜桃精品视频在线观看| 国产精品视频第一区| 欧美日韩性生活| 久久精工是国产品牌吗| 亚洲国产精品成人综合色在线婷婷 | 亚洲欧洲日韩女同| 欧美日韩久久久久久| 久久不见久久见免费视频7| 欧美激情一区二区三区不卡| 欧美视频在线一区| 国产乱码精品一区二区三区忘忧草 | 亚洲国产成人一区二区三区| 在线视频你懂得一区二区三区| 视频一区视频二区中文字幕| 中文字幕免费一区| 欧美一区二区在线观看| 成人午夜电影网站| 日本美女一区二区三区| 亚洲欧美综合色| 精品国产亚洲在线| 欧美日韩成人综合在线一区二区 | 日本成人在线不卡视频| 国产精品三级av在线播放| 欧美一区二区成人| 色伊人久久综合中文字幕| 国产一区久久久| 性久久久久久久久| 亚洲免费观看高清完整版在线观看熊 | 日韩欧美国产三级| 色激情天天射综合网| 国产精品一二三区在线| 日本人妖一区二区| 亚洲最大成人综合| 国产精品剧情在线亚洲| 久久一区二区三区四区| 在线成人免费视频| 日本丶国产丶欧美色综合| 粉嫩av一区二区三区粉嫩| 人禽交欧美网站| 亚洲午夜精品在线| 亚洲精品日日夜夜| 自拍视频在线观看一区二区| 国产欧美一区二区三区沐欲| 日韩免费观看高清完整版| 欧美在线观看一区二区| 92精品国产成人观看免费| 国产精品99久久久久久有的能看| 日韩电影一二三区| 亚洲国产日产av| 亚洲黄色录像片| 亚洲三级视频在线观看| **网站欧美大片在线观看| 中文字幕不卡三区| 中文字幕欧美日本乱码一线二线| 国产欧美va欧美不卡在线| 国产欧美一区二区三区鸳鸯浴| 久久久精品免费免费| 国产亚洲欧美中文| 久久精品人人做| 国产视频911| 国产网站一区二区| 欧美国产精品一区二区| 国产精品电影一区二区三区| 1024成人网色www| 一个色在线综合| 五月激情综合婷婷| 开心九九激情九九欧美日韩精美视频电影| 日韩成人精品在线观看| 理论片日本一区| 国产精品1区二区.| av一二三不卡影片| 91国产丝袜在线播放| 欧美在线视频日韩| 日韩三级.com| 国产欧美va欧美不卡在线| 国产精品二区一区二区aⅴ污介绍| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲美女区一区| 日韩av中文在线观看| 韩日精品视频一区| 99v久久综合狠狠综合久久| 在线观看视频欧美| 日韩精品一区二区在线| 欧美国产成人在线| 亚洲一区欧美一区| 精品午夜久久福利影院| av亚洲精华国产精华| 精品视频免费看| 精品久久久久久久久久久院品网| 久久久国产午夜精品| 亚洲欧美日韩电影| 美女国产一区二区三区| 成人福利在线看| 欧美专区在线观看一区| 欧美成va人片在线观看| 亚洲视频1区2区| 伦理电影国产精品| 色综合色综合色综合色综合色综合| 欧美日韩国产另类不卡| 国产亚洲人成网站| 五月婷婷欧美视频| 国产成人啪午夜精品网站男同| 91色|porny| 2023国产一二三区日本精品2022| 亚洲欧美经典视频| 国产综合久久久久影院| 欧美在线观看禁18| 国产精品美女久久久久久久| 日韩av午夜在线观看| 972aa.com艺术欧美| 久久综合狠狠综合久久激情 | 日本成人在线不卡视频| 成人激情免费网站| 日韩三级在线免费观看| 亚洲日本乱码在线观看| 国产一区二区视频在线| 欧美肥妇bbw| 亚洲欧美一区二区三区极速播放 | 亚洲第一福利一区| 成人一区二区三区视频| 日韩免费福利电影在线观看| 亚洲一区二区三区在线| 99久久伊人精品| 久久久国产综合精品女国产盗摄| 日韩黄色小视频| 99精品欧美一区| 国产欧美日韩亚州综合 | 国产欧美久久久精品影院| 精品动漫一区二区三区在线观看| 一区二区三区四区亚洲| 成人激情文学综合网| 精品国产青草久久久久福利| 日韩影院在线观看| 中日韩免费视频中文字幕| 7777精品伊人久久久大香线蕉 | 亚洲亚洲人成综合网络| 一区二区久久久久| 亚洲男人的天堂网| 亚洲欧美激情在线| 亚洲综合色噜噜狠狠| 亚洲品质自拍视频| 亚洲成人综合网站| 日本人妖一区二区| 久久精品国产99久久6| 极品销魂美女一区二区三区| 国产精品影音先锋| 成人ar影院免费观看视频| hitomi一区二区三区精品| 色老头久久综合| 在线成人av影院| 亚洲精品在线免费播放| 亚洲国产高清不卡| 伊人性伊人情综合网| 五月婷婷久久丁香| 国产毛片精品一区| www.日韩在线| 在线观看日产精品| 日韩亚洲国产中文字幕欧美| 久久人人超碰精品| 亚洲欧美激情小说另类| 天天做天天摸天天爽国产一区 | 夜夜嗨av一区二区三区网页| 视频一区二区欧美| 国产精品一二三四区| 在线视频综合导航| 精品国产乱码久久久久久影片| 久久久久久夜精品精品免费| 国产精品久久久久久亚洲伦| 亚洲无线码一区二区三区| 久久99精品国产.久久久久久| 大白屁股一区二区视频| 欧美日韩小视频| 久久无码av三级| 亚洲一区在线观看网站| 国产精品66部| 欧美一级在线视频| 中文字幕亚洲成人| 蜜臀av一区二区在线观看| 欧美美女网站色| 国产欧美日韩一区二区三区在线观看| 亚洲一区二区三区小说| 国产精品白丝jk黑袜喷水| 欧美日韩高清在线播放| 欧美国产在线观看| 久久福利资源站| 欧美日韩你懂的|