Package com.cburch.draw.shapes

Examples of com.cburch.draw.shapes.Curve


    int ry = OFFS + (9 - (ay + 9) % 10);
   
    Location e0 = Location.create(rx + (width - 8) / 2, ry + 1);
    Location e1 = Location.create(rx + (width + 8) / 2, ry + 1);
    Location ct = Location.create(rx + width / 2, ry + 11);
    Curve notch = new Curve(e0, e1, ct);
    notch.setValue(DrawAttr.STROKE_WIDTH, Integer.valueOf(2));
    notch.setValue(DrawAttr.STROKE_COLOR, Color.GRAY);
    Rectangle rect = new Rectangle(rx, ry, width, height);
    rect.setValue(DrawAttr.STROKE_WIDTH, Integer.valueOf(2));

    List<CanvasObject> ret = new ArrayList<CanvasObject>();
    ret.add(notch);
View Full Code Here


      end0 = Location.create(mx, my);
      end1 = end0;
      state = ENDPOINT_DRAG;
      break;
    case ENDPOINT_DRAG:
      curCurve = new Curve(end0, end1, Location.create(mx, my));
      state = CONTROL_DRAG;
      break;
    }
    repaintArea(canvas);
  }
View Full Code Here

    repaintArea(canvas);
  }
 
  @Override
  public void mouseReleased(Canvas canvas, MouseEvent e) {
    Curve c = updateMouse(canvas, e.getX(), e.getY(), e.getModifiersEx());
    mouseDown = false;
    if (state == CONTROL_DRAG) {
      if (c != null) {
        attrs.applyTo(c);
        CanvasModel model = canvas.getModel();
View Full Code Here

    lastMouseY = my;
   
    boolean shiftDown = (mods & MouseEvent.SHIFT_DOWN_MASK) != 0;
    boolean ctrlDown = (mods & MouseEvent.CTRL_DOWN_MASK) != 0;
    boolean altDown = (mods & MouseEvent.ALT_DOWN_MASK) != 0;
    Curve ret = null;
    switch (state) {
    case ENDPOINT_DRAG:
      if (mouseDown) {
        if (shiftDown) {
          Location p = LineUtil.snapTo8Cardinals(end0, mx, my);
          mx = p.getX();
          my = p.getY();
        }
        if (ctrlDown) {
          mx = canvas.snapX(mx);
          my = canvas.snapY(my);
        }
        end1 = Location.create(mx, my);
      }
      break;
    case CONTROL_DRAG:
      if (mouseDown) {
        int cx = mx;
        int cy = my;
        if (ctrlDown) {
          cx = canvas.snapX(cx);
          cy = canvas.snapY(cy);
        }
        if (shiftDown) {
          double x0 = end0.getX();
          double y0 = end0.getY();
          double x1 = end1.getX();
          double y1 = end1.getY();
          double midx = (x0 + x1) / 2;
          double midy = (y0 + y1) / 2;
          double dx = x1 - x0;
          double dy = y1 - y0;
          double[] p = LineUtil.nearestPointInfinite(cx, cy,
              midx, midy, midx - dy, midy + dx);
          cx = (int) Math.round(p[0]);
          cy = (int) Math.round(p[1]);
        }
        if (altDown) {
          double[] e0 = { end0.getX(), end0.getY() };
          double[] e1 = { end1.getX(), end1.getY() };
          double[] mid = { cx, cy };
          double[] ct = CurveUtil.interpolate(e0, e1, mid);
          cx = (int) Math.round(ct[0]);
          cy = (int) Math.round(ct[1]);
        }
        ret = new Curve(end0, end1, Location.create(cx, cy));
        curCurve = ret;
      }
      break;
    }
    return ret;
View Full Code Here

        int ry = OFFS + (9 - (ay + 9) % 10);

        Location e0 = Location.create(rx + (width - 8) / 2, ry + 1);
        Location e1 = Location.create(rx + (width + 8) / 2, ry + 1);
        Location ct = Location.create(rx + width / 2, ry + 11);
        Curve notch = new Curve(e0, e1, ct);
        notch.setValue(DrawAttr.STROKE_WIDTH, Integer.valueOf(2));
        notch.setValue(DrawAttr.STROKE_COLOR, Color.GRAY);
        Rectangle rect = new Rectangle(rx, ry, width, height);
        rect.setValue(DrawAttr.STROKE_WIDTH, Integer.valueOf(2));

        List<CanvasObject> ret = new ArrayList<CanvasObject>();
        ret.add(notch);
View Full Code Here

            end0 = Location.create(mx, my);
            end1 = end0;
            state = ENDPOINT_DRAG;
            break;
        case ENDPOINT_DRAG:
            curCurve = new Curve(end0, end1, Location.create(mx, my));
            state = CONTROL_DRAG;
            break;
        default:
          break;
        }
View Full Code Here

        repaintArea(canvas);
    }

    @Override
    public void mouseReleased(Canvas canvas, MouseEvent e) {
        Curve c = updateMouse(canvas, e.getX(), e.getY(), e.getModifiersEx());
        mouseDown = false;
        if (state == CONTROL_DRAG) {
            if (c != null) {
                attrs.applyTo(c);
                CanvasModel model = canvas.getModel();
View Full Code Here

        lastMouseY = my;

        boolean shiftDown = (mods & InputEvent.SHIFT_DOWN_MASK) != 0;
        boolean ctrlDown = (mods & InputEvent.CTRL_DOWN_MASK) != 0;
        boolean altDown = (mods & InputEvent.ALT_DOWN_MASK) != 0;
        Curve ret = null;
        switch (state) {
        case ENDPOINT_DRAG:
            if (mouseDown) {
                if (shiftDown) {
                    Location p = LineUtil.snapTo8Cardinals(end0, mx, my);
                    mx = p.getX();
                    my = p.getY();
                }
                if (ctrlDown) {
                    mx = canvas.snapX(mx);
                    my = canvas.snapY(my);
                }
                end1 = Location.create(mx, my);
            }
            break;
        case CONTROL_DRAG:
            if (mouseDown) {
                int cx = mx;
                int cy = my;
                if (ctrlDown) {
                    cx = canvas.snapX(cx);
                    cy = canvas.snapY(cy);
                }
                if (shiftDown) {
                    double x0 = end0.getX();
                    double y0 = end0.getY();
                    double x1 = end1.getX();
                    double y1 = end1.getY();
                    double midx = (x0 + x1) / 2;
                    double midy = (y0 + y1) / 2;
                    double dx = x1 - x0;
                    double dy = y1 - y0;
                    double[] p = LineUtil.nearestPointInfinite(cx, cy,
                            midx, midy, midx - dy, midy + dx);
                    cx = (int) Math.round(p[0]);
                    cy = (int) Math.round(p[1]);
                }
                if (altDown) {
                    double[] e0 = { end0.getX(), end0.getY() };
                    double[] e1 = { end1.getX(), end1.getY() };
                    double[] mid = { cx, cy };
                    double[] ct = CurveUtil.interpolate(e0, e1, mid);
                    cx = (int) Math.round(ct[0]);
                    cy = (int) Math.round(ct[1]);
                }
                ret = new Curve(end0, end1, Location.create(cx, cy));
                curCurve = ret;
            }
            break;
        default:
          break;
View Full Code Here

TOP

Related Classes of com.cburch.draw.shapes.Curve

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.