The Transition2D
abstract class provides a framework for defining a transition between two images using 2D-based rendering operations.
There are dozens of transitions to choose from, but once you've decided what you want the invocation is simple:
SwivelTransition2D t = new SwivelTransition2D(); float progress = ...; t.paint(graphics2D, imgA, imgB, progress);
Here progress
is a float that ranges from 0 (which will only show imgA
) to 1 (which will only show imgB
).
The only abstract method in the Transition2D
class is:
public abstract Transition2DInstruction[] getInstructions(float progress, Dimension size);
All subclasses have to provide a series of Transition2DInstruction
objects describing how to paint each layer of the transition. These instructions basically manipulate the transform, clipping and opacity of each image. (And in some cases add shapes.)
This concept is very similar to the com.pump.graphics.vector.Operation
object. And someday I might refactor these two projects (the VectorImage
and Transition2D
) to use the Operation
objects. The Transition2DInstruction
are simpler in scope and could potentially lend themselves to exporting to other file formats, but in reality I don't see that happening any time soon.
![]() Bars Horizontal Random | ![]() Bars Horizontal | ![]() Bars Vertical Random | ![]() Bars Vertical |
![]() Blend | ![]() Blinds Left (4) | ![]() Blinds Left (10) | ![]() Blinds Left (20) |
![]() Blinds Right (10) | ![]() Blinds Up (10) | ![]() Blinds Down (10) | ![]() Box In |
![]() Box Out | ![]() Checkerboard Left | ![]() Checkerboard Right | ![]() Checkerboard Up |
![]() Checkerboard Down | ![]() Circle In | ![]() Circle Out | ![]() Collapse |
![]() Curtain | ![]() Diamonds (10) | ![]() Diamonds (20) | ![]() Diamonds (40) |
![]() Documentary Left | ![]() Documentary Right | ![]() Documentary Up | ![]() Documentary Down |
![]() Dots | ![]() Drop | ![]() Flurry In | ![]() Flurry Out |
![]() Funky Wipe Circular | ![]() Funky Wipe Across | ![]() Goo (10) | ![]() Goo (20) |
![]() Goo (50) | ![]() Halftone In | ![]() Halftone Out | ![]() Kaleidoscope |
![]() Levitate | ![]() Mesh Shuffle | ![]() Microscope | ![]() Mirage |
![]() Motion Blend | ![]() Refractive | ![]() Pivot Out Top Left | ![]() Pivot In Top Left |
![]() Pivot Out Top Right | ![]() Pivot In Top Right | ![]() Pivot Out Bottom Left | ![]() Pivot In Bottom Left |
![]() Pivot Out Bottom Right | ![]() Pivot In Bottom Right | ![]() Push Left | ![]() Push Down |
![]() Push Up | ![]() Push Right | ![]() Radial Wipe Clockwise | ![]() Radial Wipe Counterclockwise |
![]() Reveal Left | ![]() Reveal Right | ![]() Reveal Up | ![]() Reveal Down |
![]() Rotate In | ![]() Rotate Out | ![]() Scale In | ![]() Scale Out |
![]() Scribble | ![]() Scribble Twice | ![]() Slide Left | ![]() Slide Right |
![]() Slide Up | ![]() Slide Left | ![]() Spiral | ![]() Spiral Sprawl |
![]() Split Horizontal Out | ![]() Split Horizontal In | ![]() Split Vertical Out | ![]() Split Vertical In |
![]() Square Rain (6) | ![]() Square Rain (12) | ![]() Square Rain (24) | ![]() Squares (10x10) |
![]() Squares (30x30) | ![]() Squares (20x20) | ![]() Star In | ![]() Star Out |
![]() Stars Left | ![]() Stars Right | ![]() Swivel Counterclockwise | ![]() Swivel Clockwise |
![]() Toss Left | ![]() Toss Right | ![]() Wave Left | ![]() Wave Right |
![]() Wave Up | ![]() Wave Down | ![]() Wipe Up | ![]() Wipe Left |
![]() Wipe Down | ![]() Wipe Right | ![]() Zoom Left | ![]() Zoom Left Stationary |
![]() Zoom Right | ![]() Zoom Right Stationary |