There is a great way to rotate a Cartesian vector field about the origin described in Rotating vector functions.

Instead, let us suppose that we have a velocity vector field in polar coordinates i.e., $\vec{V}(r,\theta)\equiv V_r ~\hat{r} + V_\theta ~\hat{\theta}$, where $V_r$ is the radial velocity component and $V_\theta$ is the azimuthal velocity component.

How would one rotate this polar velocity vector field by angle $\alpha$ clockwise about the origin $(x,y)=(0,0)$?

I suppose one could convert $V_r$ and $V_\theta$ into their corresponding Cartesian components $V_x$ and $V_y$, rotate those fields via the method described in Rotating vector functions, and then convert it back.

Is there a more elegant way?

  • $\begingroup$ Which of the two answers was helpful and/or can be accepted ? If not why not ? $\endgroup$
    – Kurt G.
    Jun 8, 2022 at 9:19

2 Answers 2


It will turn out that the rotation in polar coordinates is nothing else than a shift of coordinate functions by an angle $\alpha$. Note that we usually shift a function $g$ on $\mathbb R$ by $\alpha$ by going to the function $x\mapsto g(x\color{red}{-}\alpha)$.

A very convenient method to formalize vector fields in different coordinates is to treat them as derivations. This is very common in differential geometry. In $2d$ Cartesian coordinates a vector field is then $$ X=X_1\frac{\partial}{\partial x_1}+X_2\frac{\partial}{\partial x_2} $$ where $X_1,X_2$ are scalar functions on $\mathbb R^2$.

From the Cartesian-polar transformation \begin{align} r&=\sqrt{x_1^2+x_2^2}\,,& \theta&=\arctan\frac{x_2}{x_1}\,\\ x_1&=r\cos\theta\,,&x_2&=r\sin\theta \end{align} we get \begin{align} \frac{\partial x_1}{\partial r}&=\cos\theta\,,&\frac{\partial x_1}{\partial \theta}=-r\sin\theta\,,\\ \frac{\partial x_2}{\partial r}&=\sin\theta\,,&\frac{\partial x_2}{\partial \theta}=r\cos\theta\,. \end{align} By the chain rule we have for any differentiable function $f$ on $\mathbb R^2$ \begin{align} \frac{\partial f}{\partial r}&=\frac{\partial f}{\partial x_1}\frac{\partial x_1}{\partial r}+\frac{\partial f}{\partial x_2}\frac{\partial x_2}{\partial r} =\frac{\partial f}{\partial x_1}\cos\theta+\frac{\partial f}{\partial x_2}\sin\theta\,,\\[3mm] \frac{\partial f}{\partial \theta}&=\frac{\partial f}{\partial x_1}\frac{\partial x_1}{\partial \theta}+\frac{\partial f}{\partial x_2}\frac{\partial x_2}{\partial \theta} =-\frac{\partial f}{\partial x_1}r\sin\theta+r\frac{\partial f}{\partial x_2}\cos\theta\,. \end{align} In matrix notation and dropping the test function this is the transformation rule for the basis vector fields: $$ \begin{pmatrix}\frac{\partial}{\partial r}\\\frac{\partial}{\partial \theta} \end{pmatrix}=\begin{pmatrix}\cos\theta &\sin\theta\\-r\sin\theta&r\cos\theta\end{pmatrix}\begin{pmatrix}\frac{\partial}{\partial x_1}\\\frac{\partial}{\partial x_2} \end{pmatrix}. $$ Clearly, $$ \begin{pmatrix}\frac{\partial}{\partial x_1}\\\frac{\partial}{\partial x_2} \end{pmatrix}=\begin{pmatrix}\cos\theta &-\frac{1}{r}\sin\theta\\\sin\theta&\frac{1}{r}\cos\theta\end{pmatrix}\begin{pmatrix}\frac{\partial}{\partial r}\\\frac{\partial}{\partial \theta} \end{pmatrix}. $$ The vector field $X$ in polar coordinates is therefore, \begin{align} X'&=X_1'\Big(\cos\theta\frac{\partial}{\partial r}-\frac{1}{r}\sin\theta\frac{\partial}{\partial \theta}\Big)+X_2'\Big(\sin\theta\frac{\partial}{\partial r}+\frac{1}{r}\cos\theta\frac{\partial}{\partial \theta}\Big)\\[3mm] &=\Big(X_1'\cos\theta+X_2'\sin\theta\Big)\frac{\partial}{\partial r}+ \Big(-X_1'\frac{1}{r}\sin\theta+X_2'\frac{1}{r}\cos\theta\Big)\frac{\partial}{\partial \theta} \end{align} where $X'_1(r,\theta)=X_1(x_2,x_2)$ and $X'_2(r,\theta)=X_2(x_2,x_2)\,.$

The whole point is now that nothing is simpler than rotating the vector field $X'$ by an angle $\alpha$ around the origin.

This rotation is a shift which gives \begin{align} X'' &=\Big(X_1''\cos(\theta-\alpha)+X_2'\sin(\theta-\alpha)\Big)\frac{\partial}{\partial r}+ \Big(-X_1''\frac{1}{r}\sin(\theta-\alpha)+X_2''\frac{1}{r}\cos(\theta-\alpha)\Big)\frac{\partial}{\partial \theta} \end{align} where $X''_1(r,\theta)=X'_1(r,\theta-\alpha)$ and $X''_2(r,\theta)=X_2'(r,\theta-\alpha)\,.$


As mentioned in the link solution, in cartesian coordinates one can write the rotated vector field in the form $$E_{new}(\pmb v) = R_\alpha(E(R_\alpha^{-1}(\pmb v))) $$ where $\pmb v = (x,y,z)$ and $R_\alpha$ is the rotation by $\alpha$ clockwise transformation matrix; in other words, we rotate backwards, fix the arrows in the vector field, then rotate all the arrows forwards into their original positions. In the polar case we can do exactly the same thing, with a slight modification: In polar coordinates, our transformation $R_\alpha$ is no longer a matrix since it is an affine mapping instead of linear. More simply, $R_{\alpha}(r,\theta) = (r, \theta-\alpha)$ and so we in your notation we have $$\vec V_{new}(r,\theta) = V_r(r,\theta+\alpha)\hat r + \Big(V_\theta(r,\theta+\alpha)-\alpha\Big)\hat \theta$$ where $$\vec V(r,\theta) = V_r(r,\theta)\hat r + V_\theta(r,\theta)\hat \theta$$ is the original vector field.

In case you're interested, these problems are both specific examples of the larger concept of conjugation, something that comes up in group theory/abstract algebra when looking at symmetry classes: https://en.wikipedia.org/wiki/Conjugacy_class

  • $\begingroup$ To clarify, why does the transformation for $V_\theta$ involve $- \alpha$ whereas the $V_r$ transformation does not involve $-\alpha$? Specifically, why is the transformed $V_r$ equal to $V_r(r,\theta+\alpha)$ but $V_\theta$ requires $V_\theta(r,\theta+\alpha) - \alpha)$? $\endgroup$
    – Bob S
    Jun 7, 2022 at 18:22
  • $\begingroup$ The rotation transformation $R_\alpha$ applied to a vector in polar coordinates leaves the radius unchanged but decreases the argument by $\alpha$. Since $(V_r,V_\theta)$ are the coordinates of the vector field, applying $R_\alpha$ to these coordinates yields $(V_r,V_\theta-\alpha)$, which when matching your notation gives the resulting formula. $\endgroup$
    – Andrew
    Jun 7, 2022 at 18:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .