Basis tranformation from surface embebed in $\mathbb{R}^3$ to $\mathbb{R}^2$

29 Views Asked by At

I have a set particles that are located on a surface on $\mathbb{R}^3$. To make it more clear, I am working with a triangulated surface, and, because this triangulation is reasonably detailed, grossly speaking one can consider that, on the domain of a given particle and its nearest neighbours (NN), the surface is flat.

I try to express the coordinates of a particle and its NN such that I have coordinates in $\mathbb{R}^2$. In other words, I would expect a transformation resulting in a a null value in one of the coordinate axis allowing me to calculate properties on the plane.

My approach is to find the Inertia tensor $\mathbf{I}$ of the particle of interest and its NN with respect to the centre of mass, $\mathbf{I_{cm}} := \mathbf{I}( \mathbf{r - R_{cm}) }$. Then, I diagonalize $\mathbf{I}$ such that the set eigenvectors $\mathbf{v_i}, i \in\{1,2,3 \}$, define a new basis system: \begin{equation} \mathbf{B} := \begin{pmatrix} v_1^x & v_2^x & v_3^x \\ v_1^y & v_2^y & v_3^y \\ v_1^z & v_2^z & v_3^z \end{pmatrix} \end{equation}

In a last step, I can determine the coordinates of the particles attending to that basis as \begin{equation} \begin{split} \mathbf{r'} = \mathbf{B}^{-1}(\mathbf{r - R_{cm}} )\\ = \mathbf{B}^{T}(\mathbf{r - R_{cm}} ), \end{split} \end{equation} where the last equality comes from the orthonormality of between the vectors in $\mathbf{B}$.

I have been doing tests with MWEs and its seems to work, resulting in values of $\mathbf{r'}$ where one of the values is zero. Of course, it is only exactly 0 if the particles are perfectly defined into a plane. Still, this seems to work reasonably, such that one of the coordinates can be considered negligible with respect to to the others, up to the 30% of variability in the location of the particles on the original coordinates but when I go to my surface of interest it does not work good, despite they are within this regime.

What are your thought on the procedure? Maybe I have something wrong on my codes and not on the maths?

Thanks for your help