blob: f2c2faaef7116ee7c6cac47b86fef5aed4ded0da [file] [log] [blame]
<test title="AffineTransform">
<description>
This test validates the convertion of Java 2D AffineTransform
into SVG transform attributes.
</description>
<description>
The test draws a Rectangle multiple times, after various
transforms have been set.
</description>
<javaCode>
<![CDATA[
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g.setPaint(Color.black); // new Color(102, 102, 144));
int legendX = 10, legendY = 12;
g.translate(0, 30);
AffineTransform defaultTransform = g.getTransform();
// Define rectangle
Rectangle rect = new Rectangle(10, 20, 50, 30);
// Paint with default transform
g.drawString("Default transform", legendX, legendY);
g.fill(rect);
// Paint after translate
g.translate(0, 90);
g.drawString("Translate applied", legendX, legendY);
g.fill(rect);
// Rotate rectangle about its center
g.translate(0, 90);
g.rotate(Math.PI/2, 35, 35);
g.drawString("Rotate about center", legendX, legendY);
g.fill(rect);
// Restore default transform
g.setTransform(defaultTransform);
// Paint after scale
g.translate(150, 0);
g.drawString("Scale (sx=2, sy=1)", legendX, legendY);
g.scale(2, 1);
g.fill(rect);
// Paint after shear
g.setTransform(defaultTransform);
g.translate(150, 90);
g.drawString("Shear", legendX, legendY);
g.shear(.2, 1);
g.fill(rect);
AffineTransform txf = g.getTransform();
g.setTransform(new AffineTransform());
Shape shearBounds = txf.createTransformedShape(rect).getBounds();
g.setPaint(new Color(0, 0, 0, 128));
g.fill(shearBounds);
]]>
</javaCode>
</test>