Monthly Archives: June 2013

Spinning Space Curves

Let us first look at the smooth case. Let γ:IR3 be an arc length parameterized smooth curve with tangent vector T:=γ.

An adapted frame is then a smooth map σ:ISO(3) such that σe1=T. We denote the second and the third column of σ by N and Bσ=(T,N,B).The fields N and B are normal vector fields. Clearly B=T×N.

Let us take the derivative of σ. Since the vectors T,N,B are normalized we find thatσ=σU,whereU=(0κ1κ2κ10τκ2τ0).

If N is parallel along γ, i.e. the derivative has only a tangential component N=κ1T, then so is B, and τ vanishes:U=(0κ1κ2κ100κ200).Such a frame is called a parallel frame. We have seen in the lecture that parallel frames always exist.

If σ=(T,N,B) is a parallel frame and αR, then we define a new frame σα=(T,Nα,Bα) with Nα=cosαN+sinαB,Bα=sinαN+cosαB.This frame is parallel again.

The point now is that, up to Euclidean motion, γ is determined by U. We can just solve for σ and obtain T as its first column. The curve is then reconstructed by integrating T.

The term spinning refers then to the following procedure. We start with a curve γ and a parallel frame σ. This gives us U with κ1 and κ2. Now we define Uλ for λR as followsUλ=(0κ1κ2κ10λκ2λ0).This determines a new curve γλ. This family of curves is called the associated family.

associate_family1 associate_family2 associate_family3

Our plan is to spin discrete space curves. So let γ=(γ0,,γn) be a discrete space curve. Thinking of linear interpolation one finds the best place to locate an adapted frame is on the edges. Here it is clear what the tangent Ti shall beγi:=γi+1γi=iTi.

Since the tangent on each edge is constant, we can put just a constant frame on each edge, i.e. for each edge we get σi such that σie1=Ti. Only at vertices the frame field has to jump.

frames

We define a discrete adapted frame as a collection of SO(3)-matrices σi such that σie1=Ti.

The jumps over the vertices are again given by SO(3)-matrices Ui, which we will call transport matrices. Quiet analogue to the smooth we haveσi=σi1Ui.

As in the smooth world the transport matrices determine the adapted frame. If a initial value σ0 is given then σi is given byσi=σ0U1Ui.

The corresponding curve is then reconstructed by integration of T=σe1. So we get for γ0R3 and σ0:γk+1=γ0+σ0(ki=0iU1Ui)e1.

Again we find special transport matrices, namely these which change the frame as minimal as possible, i.e. if Ti1 and Ti are parallel then Ui=Id and else Ui rotates σi1 around Ti1×Ti. These transport matrices we will denote by parallel transport. They come directly with the geometry of the curve.

parallelframes

A frame with such transport matrices is called a discrete parallel frame. Each discrete curve admits a parallel frame.

Now let γ be a discrete space curve with a parallel frame σ=(T,N,B). Then this defines complex numbers q at the vertices in the following way: Consider the vertex γi+1. The plane Ni spanned by the vectors Ni,Bi can be considered as complex line with rotation given by 90-degree-rotation around Ti which we will denote by J, i.e. JX=Ti×X. The next tangent vector Ti+1 lies on the unit sphere with the point Ti removed.

stereographicproj

If we perform stereographic projection with respect to the north pole Ti, then the tangent vector Ti+1 is mapped to Ni and hence defines a complex number qi+1=κ1Ni+κ2Bi=(κ1+κ2J)Ni. This can be interpreted as discrete complex curvature.

If the tangents are linearly dependent then q=0. If they are not they span a plane. We slice the sphere by this plane and find that the magnitude of q is given by|q|=tan(α2),where α is the angle between Ti and Ti+1.

In general frames can have torsion. While the curvature is located at the vertices, we define the torsion on the edges. Let σ be an arbitrary frame. Imagine the frames located at the start of the edges. We want to know how much it rotates around the edge from the beginning to the end. To get the rotation angle we use the parallel transport to pull the frame on the next edge back to the end of the current. I.e. we have σi and σi+1U1i+1, both adapted to the i-th edge. They differ by a rotation around Ti. If α is the angle of the rotation, then the torsion τi is given by α=τii.

To go further, we change to quaternionic frames in which the transports takes a much simpler form. Therefore we identify R3 with the imaginary quaternions, i.e.x1e1+x2e2+x3e3x1i+x2j+x3k.With this identification a rotation around an axis given by a vector X with |X|=1 by an angle α takes the formPXαPX1α,where Xα=cos(α/2)1+sin(α/2)X.

So we can encode the frame equations by quaternions by considering ϕi such thatTi=ϕiiϕ1i,Ni=ϕijϕ1i,Bi=ϕikϕ1i.That is ϕ rotates the standard basis to the basis given by the frame σi. By the equations above ϕi is determined up to a non-zero scale factor. As before the frames ϕi are related by transports, i.e.ϕi=ϕi1Vi.

The reconstruction formula for the corresponding curve takes a quite similar formγk+1=γ0+ϕ0(ki=0i(V1Vi)i(V1Vi)1)ϕ10.

Once we know the q the parallel transport takes an amazingly simple for in the quaternionic setting. It is given by Vi=1+iqj=1+qk=1Im(q)j+Re(q)k.

This is due to the fact that Im(q)j+Re(q)k are the coordinates (wrt. ϕi1) of the rotation axis prescribed by parallel transport and |q|=tan(α/2), where α is the rotation angle.

The rotation around the tangent takes the simple form Tαi=cos(αi)1+sin(αi)i. Hence we can spin the curve in the following way:

  1. Take a parallel frame and calculate the corresponding q’s.
  2. Define for λR a new parallel transport by Vλi=Tλi1Vi.
  3. Reconstruct the curve corresponding the Vαi.

spinning_circle spinning_other

Homework (due date 27 June): Your task is to implement the spinning procedure, i.e. write a plugin the constructs for a given λR the curve corresponding to the transports Vλi as define above and adds it to the scene. The initial values should be chosen suitably.

Discrete Bending Energy

As in the last post let γ be a discrete curve in the C and ˜γ=γ+S be a Darboux transformation. Denote by αj and βj the angles from the edges TJ of γ to the rod directions Sj and $S_{j+1} respectively. Then

Sj=eiαjTjSj+1=eiβjTj.

We know that S satisfies

Sj+1=SjvjTjvjˉTjSj.

This yields

eiβj=eiαjvjvjeiαj.

Using the formula

eiα=1+it1it

where

t:=tanα2

we then have

eiβj=(1+itj1itjvj)(vj1+itj1itj)1=((vj)+(+vj)itj1itj)((vj)(+vj)itj1itj)1=1+iμjtj1iμjtj.

where

μj=+vjvj.

From this we conclude

tanβj2=μjtanαj2.

With the notation

tj:=tanαj2τj:=tanκj2

we obtain

τj=tanβj1αj2=μj1tj1tj1+μj1tj1tj.

Darboux

The corresponding quantities for the Darboux transform ˜γ are

˜αj=πβj˜βj=παj˜τj=tanβjαj12=μjtjtj11+μjtjtj1.

Note that we arrive at ˜τj starting from τj if we interchange the roles of tj1 and tj and replace μj1 by μj. If we apply this rule to

1+τ2j=(1+2μj1tj1tj+μ2j1t2j1t2j)+(t2j2μj1tj1tj+μ2j1t2j1)(1+μj1tj1tj)2=(1+t2j)(1+μ2j1t2j1)(1+μj1tj1tj)2

we obtain

1+˜τ2j=(1+t2j1)(1+μ2jt2j)(1+μjtjtj1)2

Now the following is easy to prove:

Theorem: If γ is a closed polygon in R2 with equal edge lengths and ˜γ is a closed Darboux transform of γ then

nj=1(1+τ2)=nj=1(1+˜τ2).

We can interpret this as follows: The bending energy

nj=1log(1+τ2j)=nj=1log(1+cosκj)

is the same for γ and ˜γ.

Discrete Darboux Transforms

 

Let γ1,,γn be a regular polygon in R2=C. A second polygon ˜γ1,,˜γn is said to be a Darboux transform of γ if three conditions are satisfied. The first two conditions are:

1) The distance between corresponding points is a fixed number . This means for all j we have

|˜γjγj|=.

2) Corresponding edges have the same length. This means

|˜γj+1˜γj|=|γj+1γj|.

These two conditions are trivially met by a polygon ˜γ that is just a translate of γ, i.e. ˜γj=γj+a for some fixed aR2. In this case for all j the four points γj,γj+1,˜γj,˜γj+1 form a parallelogram. To eliminate this trivial solution we add a third condition:

3) Given the points γj,γj+1 and ˜γj the next point  ˜γj+1 is chosen to be different from ˜γj+(γj+1γj), if possible.

Here the word “if possible” refer to the case where γj,γj+1,˜γj lie on a straight line. In this case the parallelogram solution is the only one that complies with the first two conditions.

We denote the edge lengths by

vj=|γj+1γj|

and introduce unit vectors Tj and Sj such that

γj+1γj=vjTj˜γjγj=Sj.

Now it is easy to see that the three conditions above amount to saying that Sj+1 is obtained from Sj (the parallelogram solution) by reflecting it in that diagonal of the parallelogramm that does not contain γj.

Darboux-Reflect 

The direction of this diagonal is given by the vector SjvjTj. Reflection in a vector aC is the map

zaˉaˉz.

Using this we obtain

Sj+1=SjvjTjˉSjvjˉTjˉSj=SjvjTjvjˉTjSj.

Obviously the four points γj,γj+1,˜γj,˜γj+1 lie on a circle. One might formulate this by saying that the polygons γ and ˜γ are “enveloped” by a sequence of circles in such a way that the arclength on the two envelopes is in correspondence.

Darboux-Evelope