Inertia tensor of triangle

The inertia tensor J of a triangle (like the inertia tensor of any body) can be expressed in terms of covariance C of the body:

J = tr(C)I − C

where covariance is defined as area integral over the triangle:

C ≜ ∫ΔρxxTdA

Covariance for a triangle in three-dimensional space, assuming that mass is equally distributed over the surface with unit density, is

C = aVTSV

where

  • V represents 3 × 3 matrix containing triangle vertex coordinates (v0,v1,v2) in the rows,
  • a = |(v1v0)×(v2v0)| is twice the area of the triangle,

\mathbf{S}= \frac{1}{24} \begin{bmatrix} 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\ \end{bmatrix}

Substitution of triangle covariance in definition of inertia tensor gives eventually

$$\mathbf{J} = \frac{a}{24}(\mathbf{v}^2_0 + \mathbf{v}^2_1 + \mathbf{v}^2_2 + (\mathbf{v}_0 + \mathbf{v}_1 + \mathbf{v}_2)^2)\mathbf{I} - a \mathbf{V}^{\mathrm{T}} \mathbf{S} \mathbf{V}$$

A proof of the formula

The proof given here follows the steps from the article.

Covariance of a canonical triangle

Let's compute covariance of the right triangle with the vertices (0,0,0), (1,0,0), (0,1,0).

Following the definition of covariance we receive

$$\mathbf{C}^0_{xx} = \int_{\Delta} x^2 \, dA = \int_{x=0}^1 x^2 \int_{y=0}^{1-x} \, dy \, dx = \int_0^1 x^2 (1-x) \, dx = \frac{1}{12}$$

$$\mathbf{C}^0_{xy} = \int_{\Delta} xy \, dA = \int_{x=0}^1 x \int_{y=0}^{1-x} y \, dy \, dx = \int_0^1 x \frac{(1-x)^2}{2} \, dx = \frac{1}{24}$$

Cyy0 = Cxx0

The rest components of C are zero because the triangle is in z = 0.

As a result

$$\mathbf{C}^0 = \frac{1}{24} \begin{bmatrix} 2 & 1 & 0 \\ 1 & 2 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} = \frac{1}{48} \begin{bmatrix} 1 \\ -1 \\ 0 \end{bmatrix} \begin{bmatrix} 1 & -1 & 0 \end{bmatrix}^{\mathrm{T}} + \frac{1}{16} \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} \begin{bmatrix} 1 & 1 & 0 \end{bmatrix}^{\mathrm{T}}$$

Covariance of the triangle with a vertex in the origin

Consider a linear operator

x′ = Ax0 that maps the canonical triangle in the triangle v0 = 0, v1 = v1 − v0, v2 = v2 − v0. The first two columns of A contain v1 and v2 respectively, while the third column is arbitrary. The target triangle is equal to the triangle in question (in particular their areas are equal), but shifted with its zero vertex in the origin.

C′ = ∫ΔxxTdA′ = ∫Δ0Ax0x0TATadA0 = aAC0AT

$$\mathbf{C}' = \frac{a}{48}(\mathbf{v}_1 - \mathbf{v}_2)(\mathbf{v}_1 - \mathbf{v}_2)^{\mathrm{T}} +\frac{a}{16}(\mathbf{v}_1 + \mathbf{v}_2 - 2\mathbf{v}_0)(\mathbf{v}_1 + \mathbf{v}_2 - 2\mathbf{v}_0)^{\mathrm{T}}$$

Covariance of the triangle in question

The last thing remaining to be done is to conceive how covariance is changed with the translation of all points on vector v0.

$$\mathbf{C} = \int_{\Delta} (\mathbf{x'}+\mathbf{v}_0)(\mathbf{x'}+\mathbf{v}_0)^{\mathrm{T}} \, dA = \mathbf{C}' + \frac{a}{2}(\mathbf{v}_0\mathbf{v}_0^{\mathrm{T}} + \mathbf{v}_0\overline{\mathbf{x}}'^{\mathrm{T}} +\overline{\mathbf{x}}'\mathbf{v}_0^{\mathrm{T}})$$

where

$$\overline\mathbf{x}'=\int_{\Delta'} \mathbf{x}' \, dA' = \frac{1}{3}(\mathbf{v}'_1 + \mathbf{v}'_2) = \frac{1}{3}(\mathbf{v}_1 + \mathbf{v}_2 - 2\mathbf{v}_0)$$

is the centroid of dashed triangle.

It's easy to check now that all coefficients in C before viviT is $\frac{a}{12}$ and before vivjT (ij) is $\frac{a}{24}$. This can be expressed in matrix form with S as above.