With[{A = {{1, 3}, {4, 2}}/4}, Manipulate[LocatorPane[Dynamic[p, (p = Normalize[#]) &], Legended[Graphics[{FaceForm[], {EdgeForm[Blue], Disk[], Blue, Arrow[{{0, 0}, Dynamic[p]}]}, {EdgeForm[Green], TransformedRegion[Disk[], AffineTransform[A]], Green, Arrow[{{0, 0}, Dynamic[A.p]}]}}], LineLegend[{Blue, Green}, {"x", "Ax"}]], Appearance -> None], {{p, {1, 0}}, ControlType -> None}]] 
As a further extension, I just did the demonstration with the repeated matrix-vector products by straightforwardly modifying my initial implementation:
Manipulate[With[{A = Transpose[{v1, v2}]}, Panel[Graphics[{With[{ev = Eigenvectors[A]}, If[MatrixQ[ev, Internal`RealValuedNumberQ], {Gray, AbsoluteThickness[6], InfiniteLine[{0, 0}, #] & /@ ev}, {}]], {{GrayLevel[1/2, 1/4], AbsolutePointSize[12], Point[v1]}, {Blue, Arrowheads[Large], AbsoluteThickness[4], Arrow[{{0, 0}, v1}]}}, {{GrayLevel[1/2, 1/4], AbsolutePointSize[12], Point[v2]}, {Green, Arrowheads[Large], AbsoluteThickness[4], Arrow[{{0, 0}, v2}]}}, With[{iv = NestList[A.# &, v, n]}, {Pink, AbsoluteDashing[{2, 4}], Arrowheads[Medium], AbsolutePointSize[6], Point[Most[iv]], Arrow[iv]}]}, Axes -> True, PlotRange -> {{-1, 5}, {-1, 5}}]]], {{v1, {1, 1/2}}, Locator, Appearance -> None}, {{v2, {1/2, 1}}, Locator, Appearance -> None}, {{v, {2, 3}}, Locator, Appearance -> None}, {{n, 1}, 1, 20, 1}] 
The slider for n determines how many iterates of $\mathbf A^n\mathbf x$ to take.
Here is how it looks like for the case of a matrix with complex eigenvalues:

