List of usage examples for java.awt.geom Area subtract
public void subtract(Area rhs)
From source file:Main.java
public static void main(String[] args) throws Exception { URL url = new URL("http://www.java2s.com/style/download.png"); BufferedImage image = ImageIO.read(url); int w = image.getWidth(); int h = image.getHeight(); Ellipse2D.Double ellipse1 = new Ellipse2D.Double(10, 10, 20, 30); Ellipse2D.Double ellipse2 = new Ellipse2D.Double(15, 15, 20, 30); Area circle = new Area(ellipse1); circle.subtract(new Area(ellipse2)); BufferedImage result = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); Graphics2D g = result.createGraphics(); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE); g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g.setClip(circle);/*w w w .ja va 2 s . c o m*/ g.drawImage(image, 0, 0, null); g.dispose(); ImageIO.write(result, "png", new File("result.png")); }
From source file:BasicShapes.java
public static void main(String[] args) { Area shape = new Area(new Rectangle(1, 1, 1, 1)); shape.add(new Area(new Rectangle(1, 1, 1, 1))); shape.subtract(new Area(new Rectangle(1, 1, 1, 1))); shape.intersect(new Area(new Rectangle(1, 1, 1, 1))); shape.exclusiveOr(new Area(new Rectangle(1, 1, 1, 1))); }
From source file:Main.java
public static void main(String[] args) { Area shape = new Area(new Rectangle(1, 1, 1, 1)); shape.add(new Area(new Rectangle(1, 1, 1, 1))); shape.subtract(new Area(new Rectangle(1, 1, 1, 1))); shape.intersect(new Area(new Rectangle(1, 1, 1, 1))); shape.exclusiveOr(new Area(new Rectangle(1, 1, 1, 1))); System.out.println(shape.intersects(new Rectangle(1, 1, 1, 1))); }
From source file:Main.java
public static void draw(BufferedImage imageBG, BufferedImage imageFG) { Ellipse2D.Double ellipse1 = new Ellipse2D.Double(20, 20, 30, 30); Ellipse2D.Double ellipse2 = new Ellipse2D.Double(25, 25, 30, 30); Area circle = new Area(ellipse1); circle.subtract(new Area(ellipse2)); Graphics2D g = imageBG.createGraphics(); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE); g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g.setClip(circle);/* w ww .j a va 2s.c om*/ g.drawImage(imageFG, 0, 0, null); g.setClip(null); Stroke s = new BasicStroke(2); g.setStroke(s); g.setColor(Color.BLACK); g.draw(circle); g.dispose(); JLabel l = new JLabel(new ImageIcon(imageBG)); JOptionPane.showMessageDialog(null, l); }
From source file:DrawShapes_2008.java
/** * Generates a donut shape from the given location and radii by subtracting * an inner circular Area from an outer one. *///from ww w . j a va 2s . co m private static Shape generateDonut(double x, double y, double innerRadius, double outerRadius) { Area a1 = new Area(new Ellipse2D.Double(x, y, outerRadius, outerRadius)); double innerOffset = (outerRadius - innerRadius) / 2; Area a2 = new Area(new Ellipse2D.Double(x + innerOffset, y + innerOffset, innerRadius, innerRadius)); a1.subtract(a2); return a1; }
From source file:MainClass.java
public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Ellipse2D e1 = new Ellipse2D.Double(20.0, 20.0, 80.0, 70.0); Ellipse2D e2 = new Ellipse2D.Double(20.0, 70.0, 40.0, 40.0); Area a1 = new Area(e1); Area a2 = new Area(e2); a1.subtract(a2); g2.setColor(Color.orange);//from w w w . ja v a 2 s . co m g2.fill(a1); g2.setColor(Color.black); g2.drawString("subtract", 20, 140); }
From source file:Main.java
public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Ellipse2D e1 = new Ellipse2D.Double(20.0, 20.0, 80.0, 70.0); Ellipse2D e2 = new Ellipse2D.Double(20.0, 70.0, 40.0, 40.0); Area a1 = new Area(e1); Area a2 = new Area(e2); a1.subtract(a2); g2.setColor(Color.orange);//from w w w. j a va 2s.c om g2.fill(a1); g2.setColor(Color.black); g2.drawString("subtract", 20, 140); System.out.println(a1.contains(50, 50, 5, 5)); }
From source file:Main.java
public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Ellipse2D e1 = new Ellipse2D.Double(20.0, 20.0, 80.0, 70.0); Ellipse2D e2 = new Ellipse2D.Double(20.0, 70.0, 40.0, 40.0); Area a1 = new Area(e1); Area a2 = new Area(e2); a1.subtract(a2); g2.setColor(Color.orange);//from w w w . j ava2 s. c om g2.fill(a1); g2.setColor(Color.black); g2.drawString("subtract", 20, 140); System.out.println(a1.getBounds2D()); }
From source file:Main.java
public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Ellipse2D e1 = new Ellipse2D.Double(20.0, 20.0, 80.0, 70.0); Ellipse2D e2 = new Ellipse2D.Double(20.0, 70.0, 40.0, 40.0); Area a1 = new Area(e1); Area a2 = new Area(e2); a1.subtract(a2); g2.setColor(Color.orange);//w w w . j a v a 2s . co m g2.fill(a1); g2.setColor(Color.black); g2.drawString("subtract", 20, 140); System.out.println(a1.contains(50, 50)); }
From source file:Main.java
public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Ellipse2D e1 = new Ellipse2D.Double(20.0, 20.0, 80.0, 70.0); Ellipse2D e2 = new Ellipse2D.Double(20.0, 70.0, 40.0, 40.0); Area a1 = new Area(e1); Area a2 = new Area(e2); a1.subtract(a2); g2.setColor(Color.orange);// ww w .j a v a2 s. c o m g2.fill(a1); g2.setColor(Color.black); g2.drawString("subtract", 20, 140); System.out.println(a1.equals(a2)); }