Snell's law of refraction at the interface between 2 isotropic media is given by the equation: \begin{equation} n_1 \,\text{sin} \,\theta_1 = n_2 \, \text{sin}\,\theta_2 \end{equation} where $\theta_1$ is the angle of incidence and $\theta_2$ the angle of refraction. $n_1$ is the refractive index of the optical medium in front of the interface and $n_2$ is the refractive index of the optical medium behind the interface.

How can this be expressed in vector form: \begin{equation} n_1(\textbf{i} \times \textbf{n}) = n_2 (\textbf{t} \times \textbf{n}) \end{equation} where $\textbf{i}(i_\text{x}, i_\text{y}$ and $i_\text{z})$ and $\textbf{t}(t_\text{x}, t_\text{y}, t_\text{z})$ are the unit directional vector of the incident and transmitted ray respectively. $\textbf{n}(n_\text{x}, n_\text{y}, n_\text{n})$ is the unit normal vector to the interface between the two media pointing from medium 1 with refractive index $n_1$ into medium 2 with refractive index $n_2$.

Further more how can the Snell's law of refraction be expressed$^\text{1}$ in the following way? \begin{equation} t = \mu \textbf{i} + \textbf{n}\sqrt{1- \mu^2[1-(\textbf{ni})^2]} - \mu \textbf{n}(\textbf{ni}) \end{equation} Here $\mu = \dfrac{n_1}{n_2}$ and $\textbf{n}\textbf{i}= n_{\text{x}} i_{\text{x}} + n_{\text{y}}i_{\text{y}} + n_{\text{z}} i_{\text{z}}$ denotes the dot (scalar) product of vectors $\textbf{n}$ and $\textbf{i}$.


  1. Antonín Mikš and Pavel Novák, Determination of unit normal vectors of aspherical surfaces given unit directional vectors of incoming and outgoing rays: comment, 2012 Optical Society of America, page 1356
  • $\begingroup$ I think I got Snell's law by requiring that the E and B fields were continuous over the interface? $\endgroup$
    – Emil
    Oct 19, 2018 at 11:51
  • 2
    $\begingroup$ Remember that the cross product refers to the sine of the angle between the vectors, and the angles $\theta$ are the angles to the normal, then $i\times n$ is $sin \theta$. $\endgroup$
    – Mick
    Oct 19, 2018 at 11:59
  • $\begingroup$ Can you elaborate on the derivation of the last equation? $\endgroup$
    – V.F.
    Oct 19, 2018 at 12:26
  • $\begingroup$ Is there a simple way to reverse the problem? Given i and t, find the normal vector required to achieve the desired change of direction through refraction? I haven't found a simple solution, yet, after trying for an hour and a half. (I get a messy system of coupled non-linear equations.) $\endgroup$ Sep 24, 2021 at 23:29

3 Answers 3


Let a unit vector $\;\mathbf{n}=(\rm n_1,n_2,n_3)\,, \Vert\mathbf{n}\Vert=1$. Any vector $\;\mathbf{r}\;$ could be decomposed in two components with respect to $\;\mathbf{n}\;$, see Figure-01 in the bottom \begin{equation} \mathbf{r}=\mathbf{r}_\|+\mathbf{r}_\bot \tag{01}\label{01} \end{equation} one parallel and the other normal to axis $\mathbf{n}$ respectively \begin{align} \mathbf{r}_\| &=\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{r}\right)\mathbf{n} \tag{02.1}\label{02.1}\\ \mathbf{r}_\bot &=\left(\mathbf{n}\boldsymbol{\times}\mathbf{r}\right)\boldsymbol{\times}\mathbf{n}= \mathbf{r}-(\mathbf{n}\boldsymbol{\cdot}\mathbf{r})\mathbf{n} \tag{02.2}\label{02.2} \end{align} that is \begin{equation} \mathbf{r}=\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{r}\right)\mathbf{n}+\left(\mathbf{n}\boldsymbol{\times}\mathbf{r}\right)\boldsymbol{\times} \mathbf{n} \tag{03}\label{03} \end{equation} The vectors $\;\mathbf{t},\mathbf{i}\;$ are decomposed as follows \begin{equation} \mathbf{t}=\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{t}\right)\mathbf{n}+\left(\mathbf{n}\boldsymbol{\times}\mathbf{t}\right)\boldsymbol{\times} \mathbf{n} \tag{04}\label{04} \end{equation} \begin{equation} \mathbf{i}=\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{i}\right)\mathbf{n}+\left(\mathbf{n}\boldsymbol{\times}\mathbf{i}\right)\boldsymbol{\times}\mathbf{n} \tag{05}\label{05} \end{equation} Now, Snell's Law is expressed as \begin{equation} \left(\mathbf{n}\boldsymbol{\times}\mathbf{t}\right)=\mu\left(\mathbf{n}\boldsymbol{\times}\mathbf{i}\right) \tag{06}\label{06} \end{equation} see Figure-02 in the bottom.

Equation \eqref{04} combined with \eqref{05} and \eqref{06} yields \begin{equation} \mathbf{t}=\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{t}\right)\mathbf{n}+\mu\left[\mathbf{i}-\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{i}\right)\mathbf{n}\right] \tag{07}\label{07} \end{equation} Taking norms in \eqref{07} and since the vector $\;\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{t}\right)\mathbf{n}\;$ is normal to the vector $\;\left[\mathbf{i}-\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{i}\right)\mathbf{n}\right]\;$ \begin{equation} \Vert\mathbf{t}\Vert^2=\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{t}\right)^2+\mu^2\Vert\mathbf{i}-\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{i}\right)\mathbf{n}\Vert^2 \tag{08}\label{08} \end{equation} or \begin{equation} 1=\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{t}\right)^2+\mu^2\left[1-\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{i}\right)^2\right] \tag{09}\label{09} \end{equation} so \begin{equation} \left(\mathbf{n}\boldsymbol{\cdot}\mathbf{t}\right)=\pm\sqrt{1-\mu^2\left[1-\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{i}\right)^2\right]} \tag{10}\label{10} \end{equation} Since the angle between $\;\mathbf{n},\mathbf{t}\;$ is less than $\;\pi/2\;$ we keep the plus sign in \eqref{10} and \eqref{07} yields finally \begin{equation} \mathbf{t}=\sqrt{1-\mu^2\left[1-\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{i}\right)^2\right]}\,\mathbf{n}+\mu\left[\mathbf{i}-\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{i}\right)\mathbf{n}\vphantom{\left(\right)^2}\right] \tag{11}\label{11} \end{equation}

enter image description here

enter image description here

  • 1
    $\begingroup$ few questions... I) Shouldn't the length of n (blue arrow) in Fig. 01 be as long as r (or t ot i in Fig. 02)? II) How is r_perpendicular = (n×r)×n in Eq. 2.2; since (n×r)×n is orthogonal to r_perpendicular? Thanks for simplifying. $\endgroup$ Oct 23, 2018 at 17:25
  • $\begingroup$ The figures were beatifully drawn. What software did you use? $\endgroup$
    – WDC
    Dec 18, 2019 at 1:48
  • 3
    $\begingroup$ @WDC : Geogebra. It's a free software. You can draw in 3D (see Figure-01 above). A great advantage is that you can insert equations in $\LaTeX$. $\endgroup$
    – Frobenius
    Dec 18, 2019 at 8:43
  • 1
    $\begingroup$ So the vector $\mathbf{n} \times \mathbf{t}$ would be coming out through the screen at the light blue dot? What about the vector $\mathbf{n} \times \mathbf{i}$? $\endgroup$ Jul 11, 2021 at 7:04
  • 1
    $\begingroup$ How did you get the term $\mu\left[\mathbf{i}-\left(\mathbf{n}\boldsymbol{\cdot}\mathbf{i}\right)\mathbf{n}\right]$ of 07? $\endgroup$ Jul 11, 2021 at 7:35

Two parts of this answer: (1) a quick sketch of how one gets the result cited and (2) why I believe one can't get a less awkward, more succinct result.

Proof Sketch

The one thing that the numerical version of Snell's law does not give us, but which we always unconsciously use, is the equally important fact that the incident $\vec{i}$ and refracted rays $\vec{r}$ and the interface normal $\vec{n}$ all lie in the same plane. In other words, the refracted ray lies in the span $\left<\left\{\vec{i},\,\vec{n}\right\}\right>$ of $\vec{i}$ and $\vec{n}$ and so there are constants $\alpha$ and $\beta$ such that:

$$\vec{r} = \alpha\,\vec{i}+\beta\,\vec{n}\tag{1}$$

Another implication of this assertion is as follows: the vector $\vec{n}\times\vec{i}$ is the normal to this span plane. So is $\vec{n}\times\vec{r}$. So therefore, $\vec{n}\times\vec{r}\propto \vec{n}\times\vec{i}$. Now use Snell's numerical law to find the proportionality constant and you get the first equation you cite.

Take the cross product of both sides of (1) with $\vec{n}$:


and apply the form of Snell's law you have cited to find:


Let's agree to work with normalized vectors, in which case taking the inner product of (1) with itself yields:

$$0 = 1-\mu^2 + \beta^2 + 2\,\mu\,\beta\, \langle \vec{i},\,\vec{n}\rangle\tag{4}$$

whence, on finding $\beta$ from (3), the result follows with a bit of messing about. You also need to use the fact that the components of $\vec{r}$ and $\vec{i}$ normal to the interface are in the same, not the opposite, direction to decide the sign of the root of the equation for $\beta$.

A Simpler Version?

This is a complicated and awkward expression, hard to work with, so one wonders whether there might be an eleganter expression for something so trivial as Snell's law. I don't believe so, and this is because:

(1) Snells law results from a boundary condition involving medium optical densities, and is thus not simply a geometric result. If it were, simple vector or tensor expressions would result;

(2) As a result of (1), Snell's law is a nonlinear function of $\vec{i}$ and the ratio $\mu$. It is this nonlinearity that begets optical wavefront aberration in lens systems. You can write the equation derived above as:

$$\vec{r} = \vec{n} + \mu\,(\mathrm{id}-\vec{n}\otimes\vec{n})\,\vec{i} +\left(-\frac{\mu^2}{2}\left(1-\langle\vec{n},\,\vec{i}\rangle^2\right)+\frac{\mu^4}{8}\left(1-\langle\vec{n},\,\vec{i}\rangle^2\right)^2 + \cdots\right)\vec{n}$$

The first two terms above are the normal component ($\vec{n}$) and $\mu$ times the projection $(\mathrm{id}-\vec{n}\otimes\vec{n})\,\vec{i}$ projection of $\vec{i}$ onto the interface. This second term expresses the conservation of the transverse optical momentum that upholds the Hamiltonian description of ray optics and conservation of Étendue (the optical Liouville Theorem or second law of thermodynamics applied to light) across discontinuous interfaces. See the latter part of my answer here for a discussion of this point. The other terms are those responsible for optical aberrations; consideration of the linear terms together with the two written explicitly out above alone gives the Seidel theory of aberration. If Snell's law were simply expressible in vector notation, lens design would be trivial.

(3) If we wanted a purely geometric theory, one could perhaps begin with defining the metric tensor in the medium as $n^2(x,\,y,\,z)$ times the identity matrix; the distance function is then the optical path difference, and, as discussed in my answer, ray optics becomes the purely geometric theory of finding geodesics in this conformally flat Riemannian geometry, with the geodesics found from the Euler-Lagrange equation $\ddot{X}^k + \Gamma^k_{ij}\,\dot{X}^i\,\dot{X}^j = 0$ parameterized by the affine parameter equal to the optical pathlength. So we might hope for simple vector expressions expressing purely geometrical relationships in this case. Unfortunately, as discussed in the answer, the six dimensional Hamiltonian / Riemann-geometric approach breaks down at discontinuous interfaces and we are forced back to the four dimensional Hamiltonian approach involving only transverse components, because Snell's law only conserves the transverse optical momentums but not the normal and so we are again forced to deal with awkward boundary conditions. So again I think we are forced to the same conclusion that no eleganter geometric expression exists for Snell's law.


@PeterBaumgart: You get the (non-unit) normal vector from incident unit vector i and transmitted unit vector t with refractive indices $n_i$ and $n_t$ simply by

$$ \mathbf n = n_i \mathbf{i} - n_t \mathbf{t} \tag{1} $$

To see this, note that n, i and t are coplanar, therefore n is a linear combination of i and t. And that $n_i$ and $n_t$ are correct coefficients of this linear combination can be seen from expressing Snell's law (actually Ibn Sahl's law...) as

$$ n_i(\mathbf n \times \mathbf i) = n_t(\mathbf n \times \mathbf t) \tag{2} $$ and comparing eq.(2) what you get when applying $\times \mathbf i$ and $\times \mathbf t$ to eq. (1).

  • $\begingroup$ What does this answer add that doesn't already exist in the other two? $\endgroup$
    – Amit
    May 7, 2023 at 17:26
  • $\begingroup$ @Amit : an incoming vector, an outgoing vector and a surface normal vector are related via Snell's law -- you can get the third one given the other two. The previous answers are about how to get outgoing from incoming and surface normal. This answer shows how to get surface normal from outgoing and incoming in a particularly simple way. $\endgroup$
    – Julius M
    May 8, 2023 at 19:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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