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

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

?? curveapplet.java

?? < BeginningJava2,JDK5> 書中所有例程源碼
?? JAVA
字號:
import javax.swing.JApplet;
import javax.swing.JComponent;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Container;
import java.awt.Graphics;

import java.awt.geom.Point2D;
import java.awt.geom.CubicCurve2D;
import java.awt.geom.QuadCurve2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;

import javax.swing.event.MouseInputAdapter;

import java.awt.event.MouseEvent;

public class CurveApplet extends JApplet {
  // Initialize the applet
  public void init() {
    pane = new CurvePane();                       // Create pane containing curves
    Container content = getContentPane();         // Get the content pane

    // Add the pane displaying the curves to the content pane for the applet
    content.add(pane);                  // BorderLayout.CENTER is default position
    
    MouseHandler handler = new MouseHandler();    // Create the listener
    pane.addMouseListener(handler);               // Monitor mouse button presses
    pane.addMouseMotionListener(handler);         // as well as movement
  }

  // Class defining a pane on which to draw
  class CurvePane extends JComponent {
    // Constructor
    public CurvePane() {
      quadCurve = new QuadCurve2D.Double(               // Create quadratic curve
                       startQ.x, startQ.y,              // Segment start point
                       control.x, control.y,            // Control point
                       endQ.x, endQ.y);                 // Segment end point

      cubicCurve = new CubicCurve2D.Double(             // Create cubic curve
                       startC.x, startC.y,              // Segment start point
                       controlStart.x, controlStart.y,  // Control point for start
                       controlEnd.x, controlEnd.y,      // Control point for end
                           endC.x, endC.y);             // Segment end point
    }

    public void paint(Graphics g) {
      Graphics2D g2D = (Graphics2D)g;                   // Get a 2D device context

      // Update the curves with the current control point positions
      quadCurve.ctrlx = ctrlQuad.getCenter().x;
      quadCurve.ctrly = ctrlQuad.getCenter().y;
      cubicCurve.ctrlx1 = ctrlCubic1.getCenter().x;
      cubicCurve.ctrly1 = ctrlCubic1.getCenter().y;
      cubicCurve.ctrlx2 = ctrlCubic2.getCenter().x;
      cubicCurve.ctrly2 = ctrlCubic2.getCenter().y;

      // Draw the curves
      g2D.setPaint(Color.BLUE);
      g2D.draw(quadCurve);
      g2D.draw(cubicCurve);
      
      // Create and draw the markers showing the control points
      g2D.setPaint(Color.RED);                   // Set the color
      ctrlQuad.draw(g2D);                       
      ctrlCubic1.draw(g2D);
      ctrlCubic2.draw(g2D);

      // Draw tangents from the curve end points to the control marker centers
      Line2D.Double tangent = new Line2D.Double(startQ, ctrlQuad.getCenter());
      g2D.draw(tangent);
      tangent = new Line2D.Double(endQ, ctrlQuad.getCenter());
      g2D.draw(tangent);

      tangent = new Line2D.Double(startC, ctrlCubic1.getCenter());
      g2D.draw(tangent);
      tangent = new Line2D.Double(endC, ctrlCubic2.getCenter());
      g2D.draw(tangent);

    }
  }
  
  // Points for quadratic curve
  Point2D.Double startQ = new Point2D.Double(50, 75);         // Start point
  Point2D.Double endQ = new Point2D.Double(150, 75);          // End point
  Point2D.Double control = new Point2D.Double(80, 25);        // Control point

  // Points for cubic curve
  Point2D.Double startC = new Point2D.Double(50, 150);         // Start point
  Point2D.Double endC = new Point2D.Double(150, 150);          // End point
  Point2D.Double controlStart = new Point2D.Double(80, 100);  // 1st control point
  Point2D.Double controlEnd = new Point2D.Double(160, 100);   // 2nd control point

   // Markers for control points
   Marker ctrlQuad = new Marker(control);
   Marker ctrlCubic1 = new Marker(controlStart);
   Marker ctrlCubic2 = new Marker(controlEnd);

  QuadCurve2D.Double quadCurve;                          // Quadratic curve
  CubicCurve2D.Double cubicCurve;                        // Cubic curve
  CurvePane pane = new CurvePane();                      // Pane to contain curves


  // Inner class defining a control point marker
  class Marker {
    public Marker(Point2D.Double control)  {
      center = control;                   // Save control point as circle center

      // Create circle around control point
      circle = new Ellipse2D.Double(control.x-radius, control.y-radius,
                                    2.0*radius, 2.0*radius); 
    }

      // Draw the marker
      public void draw(Graphics2D g2D) {
        g2D.draw(circle);
      }

     // Get center of marker - the control point position
      Point2D.Double getCenter() {
        return center;
    }

    // Test if a point x,y is inside the marker
    public boolean contains(double x, double y) {
      return circle.contains(x,y); 
    }

    // Sets a new control point location
    public void setLocation(double x, double y) {
      center.x = x;                      // Update control point
      center.y = y;                      // coordinates
      circle.x = x-radius;               // Change circle position
      circle.y = y-radius;               // correspondingly
    }

    Ellipse2D.Double circle;               // Circle around control point
    Point2D.Double center;                 // Circle center - the control point
    static final double radius = 3;        // Radius of circle
  }

  class MouseHandler extends MouseInputAdapter {
    public void mousePressed(MouseEvent e) {
      // Check if the cursor is inside any marker
      if(ctrlQuad.contains(e.getX(), e.getY()))
        selected = ctrlQuad;
      else if(ctrlCubic1.contains(e.getX(), e.getY()))
        selected = ctrlCubic1;
      else if(ctrlCubic2.contains(e.getX(), e.getY()))
        selected = ctrlCubic2;
    }

    public void mouseReleased(MouseEvent e) {
      selected = null;                             // Deselect any selected marker
    }
    
    public void mouseDragged(MouseEvent e) {
      if(selected != null) {                       // If a marker is selected
        // Set the marker to current cursor position
        selected.setLocation(e.getX(), e.getY());
        pane.repaint();                             // Redraw pane contents
      }
    }

    Marker selected = null;                 // Stores reference to selected marker
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a美女胸又www黄视频久久| 国产一区二区按摩在线观看| 春色校园综合激情亚洲| 欧美丰满嫩嫩电影| 一区二区不卡在线视频 午夜欧美不卡在| 久草中文综合在线| 欧美日韩在线三区| 成人免费在线视频| 福利一区二区在线| 欧美mv和日韩mv的网站| 亚洲国产综合人成综合网站| 94色蜜桃网一区二区三区| 久久精品水蜜桃av综合天堂| 美腿丝袜亚洲色图| 欧美日本精品一区二区三区| 亚洲女性喷水在线观看一区| 高清久久久久久| 久久这里只有精品首页| 免费看黄色91| 欧美日韩一区久久| 一区二区三国产精华液| 91小视频免费看| 国产精品私人自拍| 国产成a人无v码亚洲福利| 精品欧美黑人一区二区三区| 日本欧美肥老太交大片| 欧美视频三区在线播放| 亚洲精品一二三区| 99久久久精品免费观看国产蜜| 久久久三级国产网站| 久久 天天综合| 精品日产卡一卡二卡麻豆| 麻豆视频一区二区| 欧美大片日本大片免费观看| 美女任你摸久久| 欧美xxxxx牲另类人与| 久久国产精品色婷婷| 欧美不卡激情三级在线观看| 九九热在线视频观看这里只有精品| 欧美一区二区性放荡片| 强制捆绑调教一区二区| 日韩一区二区三| 蜜桃91丨九色丨蝌蚪91桃色| 日韩视频免费观看高清完整版在线观看 | 亚洲日本欧美天堂| 国产精品亚洲а∨天堂免在线| 国产日本欧洲亚洲| 韩日欧美一区二区三区| 日韩久久免费av| 九九精品一区二区| 2020国产精品久久精品美国| 国产一区二区三区四| 国产视频亚洲色图| 成人一二三区视频| 国产精品国产馆在线真实露脸| 成人国产亚洲欧美成人综合网| 国产精品福利在线播放| 91捆绑美女网站| 亚洲成人自拍偷拍| 日韩欧美另类在线| 国产精品一区二区在线观看网站| 欧美国产日韩亚洲一区| 91麻豆免费观看| 午夜电影网一区| 欧美成人一级视频| 高清成人在线观看| 一区二区三区日本| 91精品国产品国语在线不卡| 麻豆精品新av中文字幕| 久久精品这里都是精品| 99久久99久久精品免费看蜜桃| 亚洲最大成人综合| 欧美一区二区在线不卡| 国产福利一区二区三区视频在线| 欧美国产一区视频在线观看| 欧美日韩中文国产| 色婷婷av一区二区三区gif| 一区二区三区在线观看视频 | 五月婷婷综合网| 精品理论电影在线| caoporen国产精品视频| 亚洲高清一区二区三区| 精品国产一区二区亚洲人成毛片| 风间由美性色一区二区三区| 亚洲欧洲制服丝袜| 日韩免费福利电影在线观看| 成人精品亚洲人成在线| 午夜成人免费视频| 国产欧美日韩综合| 日本电影亚洲天堂一区| 久久丁香综合五月国产三级网站 | 欧美xxxxx牲另类人与| 9色porny自拍视频一区二区| 日韩综合小视频| 国产亚洲欧美中文| 制服丝袜中文字幕一区| av一区二区三区四区| 日本成人在线一区| 国产亚洲欧美一区在线观看| 欧美日韩国产另类一区| 成人免费毛片嘿嘿连载视频| 日韩在线a电影| 中文字幕佐山爱一区二区免费| 91麻豆精品国产自产在线观看一区| 91视视频在线观看入口直接观看www| 国产真实乱子伦精品视频| 国产精品白丝在线| 日韩一区二区三区在线视频| www.久久久久久久久| 青青国产91久久久久久| 亚洲欧美国产77777| 久久伊99综合婷婷久久伊| 欧美色网一区二区| 成人黄色国产精品网站大全在线免费观看| 天天操天天干天天综合网| 亚洲视频小说图片| 久久久久青草大香线综合精品| 欧美日韩亚洲不卡| 99久久精品99国产精品| 国产精品综合二区| 成人av资源在线观看| 久久精品噜噜噜成人88aⅴ| 亚洲综合一区二区| 国产精品毛片久久久久久| 91精品国产入口| 欧美日韩美女一区二区| 91啪在线观看| 国产不卡视频一区| 蜜桃久久av一区| 日本怡春院一区二区| 一区二区在线观看视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲欧美综合另类在线卡通| 欧美影视一区二区三区| av一二三不卡影片| 国产精品66部| 精品一区二区三区免费视频| 日本成人中文字幕在线视频| 亚洲国产欧美日韩另类综合| 一区二区三区四区在线| 亚洲人精品午夜| 国产精品理论片在线观看| 国产欧美日韩另类视频免费观看| 欧美成人一区二区三区在线观看| 欧美日韩大陆在线| 欧美日韩久久不卡| 欧美色图免费看| 91成人免费网站| 一本久久a久久免费精品不卡| 成人免费看的视频| 成人免费不卡视频| 国产suv精品一区二区三区| 国内精品国产成人| 韩国女主播成人在线| 久久99久久精品| 九色porny丨国产精品| 久久国产精品72免费观看| 美女一区二区久久| 久久福利资源站| 精品亚洲免费视频| 国模娜娜一区二区三区| 激情综合五月婷婷| 国产一区二区三区日韩| 国产成人一级电影| 成人免费高清在线| av中文字幕不卡| 99久久99久久久精品齐齐 | 日本女人一区二区三区| 琪琪久久久久日韩精品| 九一九一国产精品| 国产成人精品一区二区三区四区 | 99久久国产综合精品色伊| 色综合久久久网| 欧美浪妇xxxx高跟鞋交| 日韩欧美中文字幕制服| 久久久久久黄色| 亚洲欧洲另类国产综合| 色域天天综合网| 日本乱人伦一区| 欧美日韩精品一区二区在线播放| 欧美日韩亚洲综合| 一区二区三区不卡视频| 视频一区欧美精品| 久久se精品一区二区| 国产成人午夜精品影院观看视频| 成人av先锋影音| 色爱区综合激月婷婷| 欧美喷水一区二区| 久久网这里都是精品| 综合久久久久综合| 午夜伊人狠狠久久| 韩国精品主播一区二区在线观看| 国产高清精品久久久久| 色屁屁一区二区| 日韩美一区二区三区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲激情在线激情| 毛片基地黄久久久久久天堂| www.成人在线| 5858s免费视频成人|