Linear Transformation
Select one of the six pre-defined linear transformation types and enter an "amount" value to define a linear transformation. For example, if you select the rotation transformation, then "amount" represents the rotation angle (measured in radians counterclockwise from the positive x-axis), while if you select the horizontal stretch, then "amount" represents the horizontal scaling factor. In particular, a horizontal stretch with an "amount" of -1 will simply be the reflection across the y-axis, while an "amount" of 0 will yield the projection onto the y-axis.
If you select the "Custom" transformation instead, then you will see the vectors and that you can drag to define the outputs for the two standard basis vectors and , respectively. This means that the custom transformation is simply the matrix transformation corresponding to the 2x2 matrix whose columns are and .
Once you have defined your transformation, if you have the "Vector" checkbox ticked, then the plot will show you an input vector and its corresponding output vector . You can move by dragging its terminal point and then observe how changes.
If you tick the "sum" or "multiple" checkboxes, you can verify that each linear transformation preserves vector addition and scalar multiplication, i.e. and . The vectors , , and can all be moved by dragging their terminal points.
If you tick the "Image" checkbox, then you can see how the selected linear transformation affects an image of a cat. Each point in the original image corresponds to a vector (the position vector for that point), and transforming that vector reveals the location of the corresponding point in the transformed image.