/* * A Java program that demonstrates use of transforms * * Ben Bederson, April 2, 2002 */ import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; public class TransformDemo extends JFrame { static public void main(String[] args) { new TransformDemo(); } public TransformDemo() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); TransformCanvas canvas = new TransformCanvas(); canvas.setPreferredSize(new Dimension(400, 400)); getContentPane().add(canvas); pack(); setVisible(true); } } class TransformCanvas extends JComponent { public void paintComponent(Graphics graphics) { Graphics2D g2 = (Graphics2D) graphics; AffineTransform tempAT = g2.getTransform(); AffineTransform at = new AffineTransform(); g2.setColor(Color.white); g2.fillRect(getX(), getY(), getWidth(), getHeight()); g2.setColor(Color.red); g2.fillRect(0, 0, 20, 20); tempAT.rotate(30.0 * Math.PI / 180.0); g2.setTransform(tempAT); g2.setColor(Color.orange); g2.fillRect(0, 0, 20, 20); tempAT.translate(100, 0); g2.setTransform(tempAT); g2.setColor(Color.blue); g2.fillRect(0, 0, 20, 20); } }