Is there a simple systematic way to build a Bishop frame

curvesdifferential-geometryVector Fields

I'm modelling a parametrized braid bracelet in openSCAD (see picture) and in a previous question, some people suggested that I might solve a torsion problem that was caused by using the Frenet-Serret Frame, by using the Bishop frame instead.

enter image description here

They gave me some ressources (Mostly the original paper from Bishop, a course by Ted Shifrin and I also found a few others online). But since I'm not very good in vector fields and differential geometry (I'm mostly self taught on this topic) and since I couldn't find anything in French (Even though I understand English, things keep being easier to understand in my mother tongue 😉 ), I had a hard time figuring out how to practically build this Bishop frame from the document I got (I need something that can give a symbolic solution, because, since my problem is circular, a numerical solution will lead to a problem of raccord.

I finally solved my problem by "inventing" my own frame which has it's own disadvantages, but even though it's not perfect, it solves the problem caused by Frenet-Serret frames. However, I believe I understood enough of the Bishop frame to see how useful it would be and would really be glad to understand how to practically build it. What i'm looking for is a systematic method of this sort (examples):

Frenet-Serret:

  1. take the derivative of your coordinates dx(t)/dt, dy(t)/dt, dz(t)/dt, and divide the resulting vector by it's norm to make it evolve on a sphere. This is called the tangent vector.
  2. Take the derivative of the coordinates of the tangent vector. Since the tangent vector evolve on a sphere, this one in perpendicular. Divide it again by it's own norm (won't work if it's null). This is called the normal vector.
  3. Take the cross product of both the tangent and the normal vectors. As those are perpendicular and unitary, this last vector is also unitary and perpendicular to both the others. This is called the binormal vector.

My solution…:

is the same as Frenet-Serret, except for step 2 where I compute the first normal vector by taking the cross product of the tangent with one vertical vector and I divide it by it's own norm. This requires that the tangent vector of my curve never gets vertical.

So my question is:

Where can I find some "HOWTO" that explains how to build a Bishop frame in the same comprehensible/systematic way as in my examples above ? (It might also help to understand the theorems)

Best Answer

I'm glad to see your next step in this exploration. What we need to compute a Bishop frame is some differentiable frame for the normal plane to the curve. I will work with the one you have used and are comfortable with. Let's fix a unit vector $A$ (you used $(0,0,1)$) and assume that the unit tangent vector $T$ is never parallel to $A$.

Indeed, let $T\cdot A = \cos\alpha$. Then $\|T\times A\| = \sin\alpha$. We get an orthonormal normal frame by taking $$\nu_1 = \frac 1{\sin\alpha}T\times A \quad\text{and}\quad \nu_2 = T\times \nu_1 = \frac 1{\sin\alpha}\big((\cos\alpha)T - A\big).$$ To get a Bishop frame, we want a linear combination $N$ of $\nu_1$ and $\nu_2$ with the property that (differentiating along the curve) $N'\cdot (T\times N) = 0$. This means that the instantaneous change in $N$ is parallel to the curve at each point, i.e., parallel to $T$. The other member of the Bishop frame will be $T\times N$, as usual. So we take $$\color{red}{\boxed{N = \cos\theta\, \nu_1 + \sin\theta\, \nu_2 \quad\text{for an appropriate function } \theta \text{ to be found.}}}$$ Now we just have to compute: $T\times N = -\sin\theta\,\nu_1 + \cos\theta\,\nu_2$ and \begin{align*} N'\cdot (T\times N) &= (\cos\theta\nu_1 + \sin\theta\nu_2)'\cdot (-\sin\theta\nu_1 + \cos\theta\nu_2) \\ &=\big((-\sin\theta\nu_1 + \cos\theta\nu_2)\theta + (\cos\theta\nu_1' + \sin\theta\nu_2')\big)\cdot(-\sin\theta\nu_1 + \cos\theta\nu_2) \\ &=\theta' + (\cos^2\theta+\sin^2\theta)(\nu_1'\cdot\nu_2). \tag{$\dagger$} \end{align*} For the latter term, we use $\nu_1'\cdot\nu_1=\nu_2'\cdot\nu_2=0$ and $\nu_2'\cdot\nu_1 = - \nu_1'\cdot\nu_2$, as you can easily check because $\|\nu_j\|^2 = 1$ and $\nu_1\cdot\nu_2=0$. Simplifying ($\dagger$), we want $$\color{red}{\boxed{0 = N'\cdot (T\times N) = \theta' + \nu_1'\cdot\nu_2.}}$$ This gives us a differential equation to solve for $\theta$ as we move along the curve.

The last bit of the computation is to find $\nu_1'\cdot\nu_2$ here. $$\nu_1' = \frac1{\sin\alpha}T'\times A + \text{a multiple of }\nu_1,$$ so $$\nu_1'\cdot\nu_2 = \frac1{\sin^2\alpha}(T'\times A)\cdot (\cos\alpha\,T-A) = \frac{\cos\alpha}{\sin^2\alpha}(T'\times A)\cdot T = \frac{\cos\alpha}{\sin^2\alpha}(T\times T')\cdot A.$$ So, in sum, we get the Bishop normal vector field by integrating $$\color{red}{\boxed{\theta' = -\frac{\cos\alpha}{\sin^2\alpha}(T\times T')\cdot A.}}$$ This should be quite computable in your framework.

Related Question