AWTの高度な機能:Graphics2D
public void paint(Graphics g){ Graphics2D g2 = (Graphics2D)g; if(mode==Stroke) drawStroke(g2); if(mode==Paint) drawPaint(g2); if(mode==AreaMd) drawArea(g2); }
Area area1=new Area(new Ellipse2D.Double(50,100,150,100)); Area area2=new Area(new Ellipse2D.Double(150,50,150,100)); Area area3=new Area(new Ellipse2D.Double(200,100,150,100)); Area areaA=new Area(); areaA.add(area1); areaA.intersect(area2); g2.draw(areaA);
Area areaB=new Area(); areaB.add(area2); areaB.add(area3); g2.setColor(Color.green); g2.draw(areaB);上の緑の線が、二つの楕円領域の和集合のアウトラインになります。他に。subtract(引き算)、exclusiveor の演算が利用できます。