Winding Number, Ray Intersection

Polygonal Approximation

Let c be a curve in real space, and let u be a point not on the curve. Let u lie in an open ball of radius ε, apart from c. Remember that c is uniformly continuous. Select δ so that neighborhoods of size δ always map into neighborhoods of size ε. Cut the domain, i.e. the unit circle, into arcs of size δ. Focus on one of these arcs, and let its endpoints map to a and b on the curve. The arc of size δ becomes a path from a to b, and the path never strays from a, or b, by more than ε. In other words, the path never touches u. Pull the path towards the line connecting a and b. This is a homotopy on c that does not touch u.

Follow up with a reparameterization, so that the path runs straight from a to b at constant speed. It does not stop, slow down, or slide back and forth.

Now do the same for all the arcs on the circle. Run these homotopies in parallel, or in series (since there are finitely many of them). The result is a polygonal approximation to the curve c, that is homotopic to c. If c lives in the plane, the winding number of u is preserved.

Ray Intersection

Assume c is polygonal, as described above. Since the corners of c are finite, almost every ray, starting at u, misses the corners of c, and intersects edges transversely. Select any such ray and consider the edge intersections. As you move away from u, in the direction of v, call a crossing positive if the edge crosses from right to left, and negative if the edge crosses from left to right. Assign these crossings weights of 1 and -1 respectively. The sum of these crossings is the winding number.

If u is outside of c, i.e. beyond the bound of c, a ray pointed away from c has no crossings. This gives a winding number of 0, which is consistent with what we saw in the previous section.

The proof relies on determinants. Let the direction v be the first row of a 2 by 2 matrix, and let the direction of c, i.e. the derivative, or velocity, be the second row. The sign of the determinant equals the sign of the crossing.

The determinant does not change under rotation, so spin the picture such that the ray runs straight up. Thus the first row is 0,1. The determinant is now minus the x direction of the curve. If the curve is moving from left to right, the x component of the velocity vector is positive. Revers the sign, as dictated by the determinant, and get -1, which agrees with our left right convention. Similarly, if c crosses from right to left, the x direction is negative, and the crossing is positive. The sign is never 0, because the ray would be colinear with the edge, and rays are not allowed to touch corners.

Let u be the origin, and let v run along the positive x axis. A crossing is positive if c is increasing (pushing up through the x axis), and negative if c is decreasing. Let g be the circle to circle map, which was denoted θ(c(t)) in the previous section. Let h be the lift of g into R1. Such a lift is used to calculate degree, and is an example of a covering space. Once a base point is selected, the lift is unique.

For convenience, express h as multiples of 2π. Thus h attains an integer value iff g = 0, iff θ = 0, iff c crosses the x axis.

To get us started, assume there are no crossings along the x axis. Let h(0) = b, the base point. Since c(0) does not lie on the x axis, and g(0) is not 0, b is not an integer. It is trapped between two integers,which I will call a cell. Since there are no crossings, the entire function h is trapped inside this cell. The lift must return to b, and the degree of g is 0, whence the winding number is 0.

Proceed by induction on the number of crossings. Assume the first crossing slants up through the x axis. The lift starts at b, and moves up into the next cell. From there, h advances by w cells, where w is the winding number determined by the remaining n-1 crossings. (This is the inductive step.) Therefore, h has been pushed up by w+1 cells, and the winding number is w+1 as expected. A similar argument applies when the first crossing is negative. And that completes the proof.

Piecewise Continuous

If c is piecewise continuous, and a ray intersects c in finitely many crossings, and each crossing is transverse (the ray is not tangent to c), then the same formula applies. There is no need to polygonalize c.

If there are no crossings then h is trapped in the base cell defined by b. The degree is 0, and the winding number is 0, as before.

Assume the first crossing is positive. We are not at a corner, hence the derivative exists. And the derivative is not parallel to the x axis. At this point in time, the curve is indeed pushing up through the x axis. Since crossings are finite, there is a segment of time, before and after t0, where c(t) does not touch the x axis, except of course for c(t0). Suppose points above t0, and arbitrarily close to t0, have images below the x axis. The delta y is negative, and the y component of the velocity cannot be positive. This is a contradiction, hence a region above t0 maps to points above the x axis. Similarly, a region below t0 maps to points below the x axis. This pushes h from its original cell, defined by b, into the next cell up. The rest of the proof is the same.