import java.awt.geom.Area;\r
import java.awt.geom.Ellipse2D;\r
import java.awt.geom.Rectangle2D;\r
+import java.awt.geom.RoundRectangle2D;\r
import java.util.HashSet;\r
import java.util.Set;\r
\r
java.awt.geom.Area a = new java.awt.geom.Area();\r
double d = 2 * mm;\r
\r
- //Make it wider\r
- double w = r.getWidth() + d;\r
- double h = r.getHeight();\r
- double x = r.getX() - d / 2;\r
- double y = r.getY();\r
- a.add( new java.awt.geom.Area(new Rectangle2D.Double(x, y, w, h)));\r
- \r
- //Make it taller\r
- w = r.getWidth();\r
- h = r.getHeight() + d;\r
- x = r.getX();\r
- y = r.getY() - d / 2;\r
- a.add( new java.awt.geom.Area(new Rectangle2D.Double(x, y, w, h)));\r
- \r
- //Add rounded corners\r
- a.add( new java.awt.geom.Area(new Ellipse2D.Double(r.getX()-mm, r.getY()-mm, mm*2, mm*2)));\r
- a.add( new java.awt.geom.Area(new Ellipse2D.Double(r.getX()+r.getWidth()-mm, r.getY()-mm, mm*2, mm*2)));\r
- a.add( new java.awt.geom.Area(new Ellipse2D.Double(r.getX()+r.getWidth()-mm, r.getY()+r.getHeight()-mm, mm*2, mm*2)));\r
- a.add( new java.awt.geom.Area(new Ellipse2D.Double(r.getX()-mm, r.getY()+r.getHeight()-mm, mm*2, mm*2)));\r
- \r
+ a.add(new Area(new RoundRectangle2D.Double(\r
+ r.getX() - d / 2,\r
+ r.getY() - d / 2,\r
+ r.getWidth() + d,\r
+ r.getHeight() + d,\r
+ d,\r
+ d\r
+ )));\r
+\r
return a;\r
}\r
\r