Mean curvature of a parametric surface s(u, v)

\( % This version will make mathjax ignore the width of the annotation and keep the main % formula centered. Obviously this mean the annotation is forcefully placed to the right % and may bleed out: \newcommand{Annotation}[1]{ \rlap{~~~~~~\raise 0.8em {\color{grey}\scriptsize{ #1 }}} } \newcommand{annotation}[1]{ {~~~~~~\raise 0.8em {\color{grey}\scriptsize{ #1 }}} } \newcommand{red}[1]{ { \color{red} #1 } } \)

You may want to look at the article where I define the Mean curvature (the article focus on triangle mesh surface but the general definition applies for all kind of surfaces).

Formula

The formula for the Mean curvature $H$ of a parametric surface $\mathbf{\vec s}(u, v) : \mathbb R^2 \rightarrow \mathbb R^3 $ is:

$$ H = \frac{L \ G - 2 \ M \ F + N \ E}{2 ( E \ G - F^2)}$$

where:

$ \begin{align*} & E = \mathbf{\vec s}_u \cdot \mathbf{\vec s}_u \\ & F = \mathbf{\vec s}_u \cdot \mathbf{\vec s}_v \\ & G = \mathbf{\vec s}_v \cdot \mathbf{\vec s}_v \\ & L = \mathbf{\vec s}_{uu} \cdot \mathbf{\vec n} \\ & M = \mathbf{\vec s}_{uv} \cdot \mathbf{\vec n}\\ & N = \mathbf{\vec s}_{vv} \cdot \mathbf{\vec n} \end{align*} $

(Dropping the vector arrow from here for simplicity.)

Here, $\mathbf{s}_u$, $\mathbf{s}_v$, $\mathbf{s}_{uu}$, $\mathbf{s}_{uv}$, and $\mathbf{s}_{vv}$ are partial derivatives of the parametric surface with respect to $u$ and $v$, the operator "$\ \cdot \ $" is the dot product, and $\mathbf{n}$ is the unit normal vector to the surface ($\mathbf n = \frac{\mathbf{s}_u \times\mathbf{s}_v}{ \| \mathbf{s}_u \times\mathbf{s}_v \| }$) So we have:

$$ H = \frac {(\mathbf{\vec s}_{uu} \cdot \mathbf{\vec n}) . (\mathbf{\vec s}_v \cdot \mathbf{\vec s}_v) - 2(\mathbf{\vec s}_{uv} \cdot \mathbf{\vec n})(\mathbf{\vec s}_u \cdot \mathbf{\vec s}_v) + (\mathbf{\vec s}_{vv} \cdot \mathbf{\vec n})(\mathbf{\vec s}_u \cdot \mathbf{\vec s}_u)} {2 \left ( (\mathbf{\vec s}_u \cdot \mathbf{\vec s}_u) . (\mathbf{\vec s}_v \cdot \mathbf{\vec s}_v) - (\mathbf{\vec s}_u \cdot \mathbf{\vec s}_v)^2 \right )} $$

The denominator can be simplified with the Lagrange's vector identity $(a\cdot a)(b\cdot b) - (a \cdot b)^2 = \| a \times b \|$:

$$ H = \frac {(\mathbf{\vec s}_{uu} \cdot \mathbf{\vec n}) . (\mathbf{\vec s}_v \cdot \mathbf{\vec s}_v) - 2(\mathbf{\vec s}_{uv} \cdot \mathbf{\vec n})(\mathbf{\vec s}_u \cdot \mathbf{\vec s}_v) + (\mathbf{\vec s}_{vv} \cdot \mathbf{\vec n})(\mathbf{\vec s}_u \cdot \mathbf{\vec s}_u)} {2 \| \vec s_u \times \vec s_v \|^2} $$

An even more Compact version can be found (c.f. Curvature formulas for implicit curves and surfaces (page 5 line 23):

$$ H = \frac {(\vec s_u \times \vec s_v) \cdot \left ( (\vec s_v \times \vec n_u) - (\vec s_u \times \vec n_v) \right )} {2 \| \vec s_u \times \vec s_v \|^2} $$

Starting from the fact that (we'll prove those new coefficients later in the document):

$ \begin{align*} & L = \mathbf{\vec s}_{uu} \cdot \mathbf{\vec n} = -\vec s_u \cdot \vec n_u \\ & M = \mathbf{\vec s}_{uv} \cdot \mathbf{\vec n} = -\vec s_u \cdot \vec n_v = -\vec s_v \cdot \vec n_u \\ & N = \mathbf{\vec s}_{vv} \cdot \mathbf{\vec n} = -\vec s_v \cdot \vec n_v \end{align*} $

You can simply develop $ H = \frac{L \ G - 2 \ M \ F + N \ E}{2 ( E \ G - F^2)}$ with the alternate coefficients of L M an N. You will need the Binet-Cauchy identity $\mathbf{\left(A\times B\right)\cdot}\left(\mathbf{C}\times\mathbf{D}\right)=\left(\mathbf{A}\cdot\mathbf{C}\right) \left(\mathbf{B}\cdot\mathbf{D}\right) - \left(\mathbf{B}\cdot\mathbf{C}\right) \left(\mathbf{A}\cdot\mathbf{D}\right)$

$$ \begin{aligned} & = L \ G - 2 \ M \ F + N \ E \\ & = (-\vec s_u \cdot \vec n_u)(\mathbf{\vec s}_v \cdot \mathbf{\vec s}_v) - (-\vec s_u \cdot \vec n_v) (-\vec s_v \cdot \vec n_u) (\mathbf{\vec s}_u \cdot \mathbf{\vec s}_v) + (-\vec s_v \cdot \vec n_v)(\mathbf{\vec s}_u \cdot \mathbf{\vec s}_u) \\ & = \cdots \\ & = \left [ (\vec s_u \cdot \vec s_v)(\vec s_v \cdot \vec n_u) - (\vec s_u \cdot \vec n_u)(\vec s_v \cdot \vec s_v) \right ] - (\vec s_u \cdot \vec s_u) (\vec s_v \cdot \vec n_u) - (\vec s_u \cdot \vec n_v) (\vec s_v \cdot\vec s_u) \\ & = \red{ (\vec s_u \times \vec s_v) \cdot (\vec s_v \times \vec n_u)} - \left [ (\vec s_u \cdot \vec s_u) (\vec s_v \cdot \vec n_u) - (\vec s_u \cdot \vec n_v) (\vec s_v \cdot\vec s_u) \right ] \annotation{ \text{apply Binet-Cauchy (1st time)}}\\ & = (\vec s_u \times \vec s_v) \cdot (\vec s_v \times \vec n_u) - \red{ (\vec s_u \times \vec s_v) \cdot (\vec s_u \times \vec n_v)} \annotation{ \text{apply Binet-Cauchy (2nd time}}\\ & = \red{ (\vec s_u \times \vec s_v) } \cdot \left ( (\vec s_v \times \vec n_u) - (\vec s_u \times \vec n_v) \right ) \annotation{\text{factor out } (\vec s_u \times \vec s_v) } \end{aligned} $$

Note

This formula is calculated using the first ($\mathrm I$) and second fundamental form ($\mathrm{I\!I}$).

$$ H = \frac{\text{Trace}(\mathrm{II} \ . \ \mathrm{I}^{-1})}{2} $$ Or alternatively expressed: $$ H = \frac{\text{Trace}(\mathrm{I} \ . \ \mathrm{II}^*)}{2Det(\mathrm{I})} $$

$\mathrm{II}^*$ denotes the adjoint of $\mathrm{II}$

$ \begin{align*} & E = \mathrm{I}(0, 0) = \mathbf{\vec s}_u \cdot \mathbf{\vec s}_u \\ & F = \mathrm{I}(0, 1) =\mathrm{I}(1, 0) =\mathbf{\vec s}_u \cdot \mathbf{\vec s}_v \\ & G = \mathrm{I}(1, 1) =\mathbf{\vec s}_v \cdot \mathbf{\vec s}_v \\ & L = \mathrm{II}(0, 0) = \mathbf{\vec s}_{uu} \cdot \mathbf{\vec n} = -\vec s_u \cdot \vec n_s \\ & M = \mathrm{II}(0, 1) = \mathrm{II}(1, 0) =\mathbf{\vec s}_{uv} \cdot \mathbf{\vec n} ?= -\vec s_u \cdot \vec n_v ?= -\vec s_v \cdot \vec n_u \\ & N = \mathrm{II}(1, 1) = \mathbf{\vec s}_{vv} \cdot \mathbf{\vec n} = -\vec s_v \cdot \vec n_v \end{align*} $

No comments

(optional field, I won't disclose or spam but it's necessary to notify you if I respond to your comment)
All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.
Anti-spam question: