Cylindrical coordinates

The cylindrical coordinate system extends polar coordinates into 3D by using the standard vertical coordinate $z$. This gives coordinates $(r, \theta, z)$ consisting of:

coordinate name range definition
$r$ radius $0 \le r \lt \infty$ distance from the $z$-axis
$\theta$ azimuth $-\pi \lt \theta \le \pi$ angle from the $x$-axis in the $x$–$y$ plane
$z$ height $-\infty \lt z \lt \infty$ vertical height

The diagram below shows the cylindrical coordinates of a point $P$. By changing the display options, we can see that the basis vectors are tangent to the corresponding coordinate lines. Changing $\theta$ moves $P$ along the $\theta$ coordinate line in the direction $\hat{e}_\theta$, and similarly for the other coordinates.

Coordinate lines:
Radius: $r = $
Azimuth: $\theta = $ °
Elevation: $z = $

Cylindrical coordinates are defined with respect to a set of Cartesian coordinates, and can be converted to and from these coordinates using the atan2 function as follows.

Conversion between cylindrical and Cartesian coordinates

\[\begin{aligned} x &= r \cos\theta & r &= \sqrt{x^2 + y^2} \\ y &= r \sin\theta & \theta &= \operatorname{atan2}(y, x) \\ z &= z & z &= z \end{aligned}\]

To find the conversion to Cartesian coordinates, we use the right triangle in the $x$–$y$ plane with hypotenuse $r$ and angle $\theta$, which immediately gives the expressions for $x$ and $y$. The $z$ coordinate remains unchanged.

To convert from Cartesian coordinates, we use the atan2 function with the same triangle.

The basis vectors are tangent to the coordinate lines and form a right-handed orthonormal basis $\hat{e}_r, \hat{e}_\theta, \hat{e}_z$ that depends on the current position $\vec{P}$ as follows. We can write either $\hat{e}_z$ or $\hat{k}$ for the vertical basis vector.

Cylindrical basis vectors

\[\begin{aligned} \hat{e}_r &= \cos\theta \,\hat{\imath} + \sin\theta \,\hat{\jmath} \\ \hat{e}_{\theta} &= - \sin\theta \,\hat{\imath} + \cos\theta \,\hat{\jmath} \\ \hat{e}_z &= \hat{k} \\[1em] \hat{\imath} &= \cos\theta \, \hat{e}_r - \sin\theta \, \hat{e}_\theta \\ \hat{\jmath} &= \sin\theta \, \hat{e}_r + \cos\theta \, \hat{e}_\theta \\ \hat{k} &= \hat{e}_z \end{aligned}\]

We write the position vector $\vec{\rho} = r \cos\theta \, \hat{\imath} + r \sin\theta \, \hat{\jmath} + z \, \hat{k}$ and then use the definition of coordinate basis vectors to find the non-normalized cylindrical basis vectors:

\[\begin{aligned} \vec{e}_r &= \frac{\partial\vec{\rho}}{\partial r} = \cos\theta \, \hat{\imath} + \sin\theta \, \hat{\jmath} \\ \vec{e}_\theta &= \frac{\partial\vec{\rho}}{\partial\theta} = -r \sin\theta \, \hat{\imath} + r \cos\theta \, \hat{\jmath} \\ \vec{e}_z &= \frac{\partial\vec{\rho}}{\partial z} = \hat{k} \end{aligned}\]

Both $\vec{e}_r$ and $\vec{e}_z$ are already normalized, and the length of $\vec{e}_\theta$ is $r$, so we can divide by this to obtain the final normalized basis vector.

To invert the basis change we can solve for $\hat{\imath}$ and $\hat{\jmath}$.

If the cylindrical coordinates change with time then this causes the cylindrical basis vectors to rotate with the following angular velocity.

Angular velocity of the cylindrical basis

\[\begin{aligned} \vec{\omega} &= \dot\theta \, \hat{e}_z \end{aligned}\]

Changing $r$ or $z$ does not cause a rotation of the basis while changing $\theta$ rotates about the vertical axis $\hat{e}_z$.

The rotation of the basis vectors caused by changing coordinates gives the time derivatives below.

Time derivatives of cylindrical basis vectors

\[\begin{aligned} \dot{\hat{e}}_r &= \dot\theta \, \hat{e}_{\theta} \\ \dot{\hat{e}}_{\theta} &= - \dot\theta \, \hat{e}_r \\ \dot{\hat{e}}_z &= 0 \end{aligned}\]

We can either directly differentiate the basis vector expressions, or we can recall that $\dot{\hat{e}} = \vec{\omega} \times \hat{e}$ for any basis vector $\hat{e}$. This gives:

\[\begin{aligned} \dot{\hat{e}}_r &= \vec{\omega} \times \hat{e}_r = \dot\theta \, \hat{e}_z \times \hat{e}_r = \dot{\theta} \, \hat{e}_\theta \\ \dot{\hat{e}}_{\theta} &= \vec{\omega} \times \hat{e}_{\theta} = \dot\theta \, \hat{e}_z \times \hat{e}_\theta = - \dot\theta \, \hat{e}_r \\ \dot{\hat{e}}_z &= \vec{\omega} \times \hat{e}_{\phi} = \dot\theta \, \hat{e}_z \times \hat{e}_z = 0 \end{aligned}\]

where we used the fact that $\hat{e}_r, \hat{e}_\theta, \hat{e}_z$ form a right-handed orthonormal basis to evaluate the cross products.

A point $P$ at a time-varying position $(r,\theta,z)$ has position vector $\vec{\rho}$, velocity $\vec{v} = \dot{\vec{\rho}}$, and acceleration $\vec{a} = \ddot{\vec{\rho}}$ given by the following expressions in cylindrical components.

Position, velocity, and acceleration in cylindrical components

\[\begin{aligned} \vec{\rho} &= r \,\hat{e}_r + z \, \hat{e}_z \\ \vec{v} &= \dot{r} \,\hat{e}_r + r \dot\theta \, \hat{e}_{\theta} + \dot{z} \,\hat{e}_z \\ \vec{a} &= (\ddot{r} - r \dot{\theta}^2) \, \hat{e}_r + (r \ddot\theta + 2 \dot{r} \dot{\theta}) \, \hat{e}_\theta + \ddot{z} \, \hat{e}_z \end{aligned}\]

From the coordinate expressions we see that the position vector is $\vec{\rho} = r \,\hat{e}_r + z \, \hat{e}_z$. Differentiating this then gives:

\[\begin{aligned} \vec{v} &= \dot{\vec{\rho}} = \frac{d}{dt}\Big( r \,\hat{e}_r + z \, \hat{e}_z \Big) = \dot{r} \, \hat{e}_r + r \, \dot{\hat{e}}_r + \dot{z} \, \hat{e}_z + z \, \dot{\hat{e}}_z \end{aligned}\]

and we substitute in the expression for $\dot{\hat{e}}_r$ and $\dot{\hat{e}}_z$ from above. Taking another derivative gives:

\[\begin{aligned} \vec{a} = \dot{\vec{v}} &= \frac{d}{dt}\Big( \dot{r} \,\hat{e}_r + r \dot\theta \, \hat{e}_{\theta} + \dot{z} \,\hat{e}_z \Big) \\ &= \ddot{r} \, \hat{e}_r + \dot{r} \, \dot{\hat{e}}_r + (\dot{r} \dot{\theta} + r \ddot\theta) \, \hat{e}_\theta + r \dot\theta \, \dot{\hat{e}}_\theta + \ddot{z} \, \hat{e}_z + \dot{z} \, \dot{\hat{e}}_z \end{aligned}\]

and again we can substitute the basis vector derivatives.

We normally write $\vec{r}$ for the position vector of a point, but if we are using cylindrical coordinates $r,\theta,z$ then this is dangerous. This is because $r$ might mean the magnitude of $\vec{r}$ or the radial coordinate, which are different. To avoid this confusion we use $\vec{\rho}$ for the position vector and $r$ for the radial coordinate.