I am dealing with a mechanics problem on a unit sphere where all the equations are written in terms of Cartesian components and wish to make a conversion to a system $n, t, s$ where $n$ is the unit normal to the surface, $t$ is tangential to the surface and $s$ is also tangential to the surface and orthogonal to $n$ and $t$.

In theory, this should be easy for a sphere because the normal vector is the same as the radial vector, then you can take the cross product of the normal vector and the unit vector in the $z$ direction to get the tangent vector.

$\textbf{t} = \textbf{n} \: \times \: \hat{\textbf{k}}. $

The second tangential vector is then obtained via

$ \textbf{s} = \textbf{n} \: \times \: \textbf{t}. $

This seems fine, but then say, I have a radial vector with Cartesian components $[r_x \: r_y \: r_z]^T$, but now I want it to have the equivalent tangential-normal components $[r_n \: r_t \: r_s]^T$, so what would the formula be to take the $x$, $y$ and $z$ components and convert them, as there will no longer be a formula to convert as there would be with Cartesian to spherical polar coordinates, for example.

Edit: Added example of conversion.

$\begin{bmatrix} r_{x} \\ r_{y} \\ r_{z} \end{bmatrix} = \begin{bmatrix} n_x & t_x & s_x \\ n_y & t_y & s_y \\ n_z & t_z & s_z \end{bmatrix} \begin{bmatrix} r_{n} \\ r_{t} \\ r_{s} \end{bmatrix}=\begin{bmatrix} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} r_{n} \\ r_{t} \\ r_{s} \end{bmatrix}$

Edit: Should the matrix giving the conversion actually be:

$\begin{bmatrix} r_{x} \\ r_{y} \\ r_{z} \end{bmatrix} = \begin{bmatrix} \sin \theta \cos \phi & \sin \phi & \cos \theta \cos \phi \\ \sin \theta \sin \phi & - \cos \phi & \cos \theta \sin \phi\\ \cos \phi & 0 &- \sin \theta \end{bmatrix} \begin{bmatrix} r_{n} \\ r_{t} \\ r_{s} \end{bmatrix} $

  • $\begingroup$ Your new reference system varies depending on the point you choose on the sphere, which usually is the point where the vector is applied. Hence you must also supply the coordinates of that point. $\endgroup$ – Aretino Feb 23 at 16:31
  • $\begingroup$ So for example, if I specify the vector $[0 \: 0 \: 1]$ in Cartesian components? Since the system depends on the point, could I have conversion as above in terms of the rotation matrix about the $z$ axis in three dimensions? $\endgroup$ – Tom Feb 23 at 16:54
  • $\begingroup$ Maybe this will help: every point in space can be labeled with an $(x,y,z)$ label. And each of those points has an $\hat{x}$, $\hat{y}$, and $\hat{z}$ direction. In a different labeling system, every point in space can be labeled with an $(n, t, s)$ label. And each of those points in space has an $\hat{n}$, $\hat{t}$, and $\hat{s}$ direction. Given an $(x_1, y_1, z_1)$ and an $(x_2, y_2, z_2)$, it's really easy to tell someone what their displacement vector is. In the new system given an equivalent $(n_1, t_1, s_1)$ corresponding to the same $(x_1, y_1, z_1)$ and an $(n_2, t_2, s_2)$ it would $\endgroup$ – DWade64 Feb 23 at 17:08
  • $\begingroup$ be really difficult, if someone were at $(n_1, t_1, s_1)$, to give them directions to general second point. Our brains our wired for cartesian direction giving. But it would be really simply to give someone directions, starting from $(0, \text{undefined}, \text{undefined})$, i.e. the origin, to $(n_2, t_2, s_2)$. You tell them to go in the direction $n_2 \hat{n}(t_2,s_2)$. All points on a sphere, with radius $R$, are given by $R \hat{r}$. It's confusing because cartesian directions are always constant. spherical directions are functions $\endgroup$ – DWade64 Feb 23 at 17:11
  • $\begingroup$ I consider $(x,y,z)$ different from $[x,y,z]^T$ which means to me something like $x\hat{x} + y\hat{y} + z\hat{z}$. The first is a point and the second is a vector in my head. An $(x,y,z)$ has an equivalent $(n,t,s)$. But an $x\hat{x} + y\hat{y} + z\hat{z}$, a position vector, always just corresponds to a position vector $n \hat{n}$ ($\hat{n}$ is a function. I don't know the direction of $\hat{n}$ unless you tell me the $t,s$ coordinates of the $(x,y,z)$ point) $\endgroup$ – DWade64 Feb 23 at 17:23

Let $(\sin\theta\cos\phi,\sin\theta\sin\phi,\cos\theta)$ be the coordinates of the reference point on the sphere. From your definitions it follows that the components of $\hat n$, $\hat t$, $\hat s$ in cartesian coordinates are given by:

$$ \hat n=(\sin\theta\cos\phi,\sin\theta\sin\phi,\cos\theta),\quad \hat t=(\sin\phi,-\cos\phi,0),\quad \hat s=(\cos\theta\cos\phi,\cos\theta\sin\phi,-\sin\theta). $$ (Notice that here $\hat t={1\over\sin\theta}\hat n\times\hat z$, to obtain a unit vector).

Suppose then you have a vector $v_{nts}=(v_n,v_t,v_s)$ expressed in $nts$ coordinates. From the above formulas it follows that its cartesian components are given by $v_{xyz}=Mv_{nts}$, where: $$ M=\pmatrix {\sin\theta\cos\phi & \sin\phi & \cos\theta\cos\phi \\ \sin\theta\sin\phi & -\cos\phi & \cos\theta\sin\phi \\ \cos\theta & 0 & -\sin\theta}. $$ And of course: $v_{nts}=M^{-1}v_{xyz}$.

  • $\begingroup$ Just to check in the middle of the matrix, that should be $- \sin \theta \cos \phi$ I think $\endgroup$ – Tom Feb 23 at 18:18
  • $\begingroup$ As I wrote, $\hat n\times\hat z$ is not a unit vector: its length is $\sin\theta$. To obtain a unit vector I defined $\hat t=(\hat n\times\hat z)/\sin\theta$. $\endgroup$ – Aretino Feb 23 at 18:25
  • $\begingroup$ Apologies, yes I was reading it wrong. $\endgroup$ – Tom Feb 23 at 18:26
  • 1
    $\begingroup$ We have: $$ M^{-1}=\pmatrix {\sin\theta\cos\phi & \sin\theta\sin\phi & \cos\theta \\ \sin\phi&-\cos\phi&0\\ \cos\theta\cos\phi & \cos\theta\sin\phi & -\sin\theta}. $$ Hence the transformed of $(0,0,1)^T$ is $$M^{-1}\pmatrix{0\\0\\1}=\pmatrix{\cos\theta\\0\\-\sin\theta}.$$ $\endgroup$ – Aretino Mar 30 at 21:41
  • 1
    $\begingroup$ At poles you can simply take $\hat x$ and $\hat y$ as tangent vectors. $\endgroup$ – Aretino Apr 12 at 16:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.