# blender file uvedit_parametrizer.c

Hello !
Can you mathmaticiens, help me ! I’m stuck for weaks to understand this;(least squares conformal mapping)

In the file uvedit_parametrizer.c this part of code :

/* angle based lscm formulation */

ratio = (sina3 == 0.0f) ? 1.0f : sina2 / sina3;
cosine = cosf(a1) * ratio;
sine = sina1 * ratio;

``````    EIG_linear_solver_matrix_add(context, row, 2 * v1-&gt;u.id,   cosine - 1.0f);
EIG_linear_solver_matrix_add(context, row, 2 * v1-&gt;u.id + 1, -sine);
EIG_linear_solver_matrix_add(context, row, 2 * v2-&gt;u.id,   -cosine);
EIG_linear_solver_matrix_add(context, row, 2 * v2-&gt;u.id + 1, sine);
EIG_linear_solver_matrix_add(context, row, 2 * v3-&gt;u.id,   1.0);
row++;

EIG_linear_solver_matrix_add(context, row, 2 * v1-&gt;u.id,   sine);
EIG_linear_solver_matrix_add(context, row, 2 * v1-&gt;u.id + 1, cosine - 1.0f);
EIG_linear_solver_matrix_add(context, row, 2 * v2-&gt;u.id,   -sine);
EIG_linear_solver_matrix_add(context, row, 2 * v2-&gt;u.id + 1, -cosine);
EIG_linear_solver_matrix_add(context, row, 2 * v3-&gt;u.id + 1, 1.0);
row++;  Blender (sparsematrix) prepares a matrix. Why use sine and cosine, and not use angle directly to each vertices, why 2 rows? Any explanations? Thanks!``````