3

Suppose that I have a triangular mesh (discrete surface composed of triangles). Now, I have been given a vector field (one vector with each triangle, tangential, unit length, so can be represented by only one angle). I would like to compute the index of this vector field on every vertex. One of the definition of the index can be the number of full rotations experienced by a vector transported along a loop of triangles around the vertex.

I have some confusions because if only the vector of one triangle (among all triangles around the vertex) is changed, it seems that the index will not change. But the index will be definitely determined by the vectors of all triangles. What am I missing here?

mengda
  • 31

1 Answers1

2

You should require that the arrows drawn on adjacent triangles are not exact opposites of each other. Otherwise you will not know how the field rotates between these two triangles: it could be rotated by angle $\pi$ or by $-\pi$.

If the above requirement (call it R) is met, then the index is well-defined, because we understand that rotation between triangles is always less than $\pi$. The index will not change if you continuously turn any particular vector clockwise or counterclockwise so that condition R is maintained at all times.

However, if one vector is turned so that it moves through an illegal position, the index of the field may change. The picture illustrates this: the field on top has counterclockwise rotation (index $1$). The field below it has clockwise rotation from triangle 1 to triangle 2 and then to triangle 3, and its index is $0$.

index change

  • But if you only change the angle 2 by a little, it would not change the index of the vertex. – mengda Feb 01 '13 at 03:18
  • @mengda That's what I said: "The index will not change if you continuously turn any particular vector clockwise or counterclockwise so that condition R is maintained at all times." –  Feb 02 '13 at 02:51