public void paint(Graphics g) {
   Graphics2D g_2d = (Graphics2D) g;
   Ellipse2D ellipse = new Ellipse2D.Double(0, 2, 80, 80);
   Rectangle2D rect = new Rectangle2D.Double(40, 2, 80, 80);
   Area a1 = new Area(ellipse);
   Area a2 = new Area(rect);
   a1.intersect(a2); // "Óë"
   g_2d.fill(a1);
   ellipse.setFrame(130, 2, 80, 80);
   rect.setFrame(170, 2, 80, 80);
   a1 = new Area(ellipse);
   a2 = new Area(rect);
   a1.add(a2); // "»ò"
   g_2d.draw(a1);
   ellipse.setFrame(0, 90, 80, 80);
   rect.setFrame(40, 90, 80, 80);
   a1 = new Area(ellipse);
   a2 = new Area(rect);
   a1.subtract(a2); // "²î"
   g_2d.draw(a1);
   ellipse.setFrame(130, 90, 80, 80);
   rect.setFrame(170, 90, 80, 80);
   a1 = new Area(ellipse);
   a2 = new Area(rect);
   a1.exclusiveOr(a2); // "Òì»ò"
   g_2d.fill(a1);
 }
Esempio n. 2
0
  private static final Shape createMask(int width, int height) {
    Shape outside = new Rectangle2D.Double(0, 0, width, height);
    Shape inside = new RoundRectangle2D.Double(10, 10, width - 20, height - 20, 50, 50);

    Area area = new Area(outside);
    area.subtract(new Area(inside));

    return area;
  }
Esempio n. 3
0
  private void paintGenome(Graphics2D g) {
    g.setColor(Color.WHITE);
    g.fillRect(0, 0, viewRect.width, viewRect.height);
    g.setColor(new Color(0.9f, 0.9f, 1f));
    g.fill(
        new Ellipse2D.Double(
            context.getCenterX() - getRadiusInt(),
            context.getCenterY() - getRadiusInt(),
            getRadiusInt() * 2,
            getRadiusInt() * 2));

    for (int i = 0; i < this.context.getDictionary().getSequences().size(); ++i) {
      SAMSequenceRecord rec = this.context.getDictionary().getSequence(i);

      Arc2D outer = context.getArc(rec, 0, rec.getSequenceLength(), getRadiusExt(), Arc2D.PIE);
      if (outer.getAngleExtent() == 0) continue;
      Area area = new Area(outer);
      Ellipse2D.Double ed =
          new Ellipse2D.Double(
              context.getCenter().getX() - getRadiusInt(),
              context.getCenter().getY() - getRadiusInt(),
              getRadiusInt() * 2,
              getRadiusInt() * 2);
      area.subtract(new Area(ed));

      g.setColor(i % 2 == 0 ? Color.LIGHT_GRAY : Color.WHITE);
      g.fill(area);
      g.setColor(Color.BLACK);
      g.draw(area);

      if ((rec.getSequenceLength() / (double) this.context.getDictionary().getReferenceLength())
          < 0.01) continue;
      String title = rec.getSequenceName();
      double midangle = context.convertPositionToRadian(rec, rec.getSequenceLength() / 2);

      AffineTransform old = g.getTransform();
      AffineTransform tr = new AffineTransform(old);

      g.translate(context.getCenterX(), context.getCenterY());
      g.rotate(midangle);
      g.translate(getRadiusExt(), 0);

      g.drawString(title, 0, 0);
      g.setTransform(tr);
      g.setTransform(old);
    }
  }
Esempio n. 4
0
  public void paint(Graphics2D g) {
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    g.setPaint(Color.black);

    // Rectangle
    g.drawString("Rectangle", 10, 20);
    Rectangle rect = new Rectangle(10, 30, 50, 40);
    g.draw(rect);

    g.translate(0, 90);

    // Round Rectangle
    g.drawString("RoundRectangle", 10, 20);
    RoundRectangle2D roundRect = new RoundRectangle2D.Double(10, 30, 50, 40, 10, 10);
    g.draw(roundRect);

    g.translate(0, 90);

    // Circle
    g.drawString("Circle", 10, 20);
    Ellipse2D circle = new Ellipse2D.Float(10, 30, 50, 50);
    g.draw(circle);

    g.translate(0, 90);

    // CubicCurve2D
    g.drawString("CubicCurve2D", 10, 20);
    CubicCurve2D curve = new CubicCurve2D.Float(10, 55, 22.5f, 00, 38.5f, 110, 60, 55);
    g.draw(curve);

    g.translate(150, -270);

    // Polygon
    g.drawString("Polygon", 10, 20);
    Polygon polygon = new Polygon(new int[] {30, 50, 10}, new int[] {30, 60, 60}, 3);
    g.draw(polygon);

    g.translate(0, 90);

    // General Path
    g.drawString("GeneralPath", 10, 20);
    GeneralPath path = new GeneralPath();
    path.moveTo(30, 30);
    path.quadTo(30, 50, 50, 60);
    path.quadTo(30, 50, 10, 60);
    path.quadTo(30, 50, 30, 30);
    path.closePath();
    g.draw(path);

    g.translate(0, 90);

    // Area
    g.drawString("Area", 10, 20);
    Area area = new Area(new Rectangle(10, 30, 50, 50));
    area.subtract(new Area(new Ellipse2D.Double(12, 32, 46, 46)));
    g.fill(area);

    g.translate(0, 90);

    // QuadCurve 2D
    g.drawString("QuadCurve2D", 10, 20);
    QuadCurve2D quad = new QuadCurve2D.Float(10, 55, 35, 105, 60, 55);
    g.draw(quad);

    g.translate(-75, 70);

    // Line
    g.drawString("Line2D", 10, 20);
    g.draw(new Line2D.Float(10, 30, 60, 30));
  }