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);
 }
Ejemplo 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;
  }
Ejemplo n.º 3
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));
  }