|
|
Displaying Graphics with Graphics2D |
You can modify the transform attribute in theGraphics2Dcontext to move, rotate, scale, and shear graphics primitives when they are rendered. The transform attribute is defined by an instance ofAffineTransform. (An affine transform is a transformation such as translate, rotate, scale, or shear in which parallel lines remain parallel even after being transformed.)
Graphics2Dprovides several methods for changing the transform attribute. You can construct a newAffineTransformand change theGraphics2Dtransform attribute by callingsetTransform.
AffineTransformdefines the following factory methods to make it easier to construct new transforms:
getRotateInstancegetScaleInstancegetShearInstancegetTranslateInstanceAlternatively you can use one of the
Graphics2Dtransformation methods to modify the current transform. When you call one of these convenience methods, the resulting transform is concatenated with the current transform and is applied during rendering:
rotate--to specify an angle of rotation in radiansscale--to specify a scaling factor in the x and y directionsshear--to specify a shearing factor in the x and y directionstranslate--to specify a translation offset in the x and y directionsYou can also construct an
AffineTransformdirectly and concatenate it with the current transform by calling thetransformmethod.The
drawImagemethod is also overloaded to allow you to specify anAffineTransformthat is applied to the image as it is rendered. Specifying a transform when you calldrawImagedoes not affect theGraphics2Dtransform attribute.Example: Transform
The following program is the same asStrokeandFill, but also allows the user to choose a transformation to apply to the selected object when it is rendered.