⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trianglerotationhandle.java

📁 JHotDraw学习过程中对数组的测试程序haha 学习过程中对数组的测试程序
💻 JAVA
字号:
/* * Sun Mar  2 19:15:28 1997  Doug Lea  (dl at gee) * Based on RadiusHandle */package CH.ifa.draw.contrib;import java.awt.*;import java.util.*;import java.io.IOException;import CH.ifa.draw.framework.*;import CH.ifa.draw.util.*;import CH.ifa.draw.standard.*;/** * A Handle to rotate a TriangleFigure */class TriangleRotationHandle extends AbstractHandle {  private Point fOrigin = null;  private Point fCenter = null;  public TriangleRotationHandle(TriangleFigure owner) {    super(owner); }  public void invokeStart(int  x, int  y, Drawing drawing) {    fCenter = owner().center();    fOrigin = getOrigin();  }  public void invokeStep (int dx, int dy, Drawing drawing) {    double angle = Math.atan2(fOrigin.y + dy - fCenter.y,                              fOrigin.x + dx - fCenter.x);    ((TriangleFigure)(owner())).rotate(angle);  }  public void invokeEnd  (int dx, int dy, Drawing drawing) {    fOrigin = null;    fCenter = null;  }  public Point locate() {    return getOrigin();  }  Point getOrigin() { // find a nice place to put handle    // almost same code as PolygonScaleHandle    Polygon p = ((TriangleFigure)(owner())).polygon();    Point first = new Point(p.xpoints[0], p.ypoints[0]);    Point ctr = owner().center();    double len = Geom.length(first.x, first.y, ctr.x, ctr.y);    if (len == 0) // best we can do?      return new Point(first.x - HANDLESIZE/2, first.y + HANDLESIZE/2);    double u = HANDLESIZE / len;    if (u > 1.0) // best we can do?      return new Point((first.x * 3 + ctr.x)/4, (first.y * 3 + ctr.y)/4);    else      return new Point((int)(first.x * (1.0 - u) + ctr.x * u),                       (int)(first.y * (1.0 - u) + ctr.y * u));  }  public void draw(Graphics g) {    Rectangle r = displayBox();    g.setColor(Color.yellow);    g.fillOval(r.x, r.y, r.width, r.height);    g.setColor(Color.black);    g.drawOval(r.x, r.y, r.width, r.height);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -