package exercicio3_5; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Polygon; import java.awt.geom.AffineTransform; import java.awt.geom.Area; import java.awt.geom.Rectangle2D; import javax.swing.JApplet; import javax.swing.JFrame; import javax.swing.JPanel; public class Exercicio3_5 extends JApplet { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setTitle("Exercicio3_5"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JApplet applet = new Exercicio3_5(); applet.init(); frame.getContentPane().add(applet); frame.pack(); frame.setVisible(true); } public void init() { JPanel panel = new Exercicio3_5Panel(); getContentPane().add(panel); } } class Exercicio3_5Panel extends JPanel { public Exercicio3_5Panel() { setPreferredSize(new Dimension(400, 400)); setBackground(Color.black); } public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; Rectangle2D rect = new Rectangle2D.Double(50, 50, 100, 100); Polygon poly = new Polygon(); for (int i = 0; i < 8; i++) { poly.addPoint((int) (100 + 150 * Math.cos(i * 2 * Math.PI / 8)), (int) (100 + 150 * Math.sin(i * 2 * Math.PI / 8))); } Area a1 = new Area(rect); Area a2 = new Area(poly); a2.subtract(a1); g2.translate(100, 100); g2.setColor(Color.blue); g2.fill(a2); AffineTransform trans = new AffineTransform(); g2.setClip(trans.createTransformedShape(a2)); g2.setFont(new Font("Arial", Font.BOLD, 100)); g2.rotate(-Math.PI / 4); g2.setColor(Color.RED); g2.drawString("Java 2D", -150, 150); } }