Equations for Robert Dixon's (Mathographics) Involute Egg-curve

57 Views Asked by At

In Mathographics Robert Dixon shows how to draw an Egg-curve (or really half of an egg curve) as an involute:

enter image description here

This allows you to draw a smoother version of eggs created from the 'arcs of a circle method.'

I want to know the formula for idealized involute curves of this type (i.e., 0-D pins, and 0 width string, etc....):

What is the formula for parametric equations for points, $(x_1, y_1), (x_2, y_2), (x_3, y_3)..., (x_n, y_n)$, given a starting point $(x_f, y_f)$ and a point $(x_O, y_O)$ where the string is attached?

1

There are 1 best solutions below

5
On

Have a look at Fig. 1 modelizing the position of the extremity of a string rolled/unrolled along a convex polygon (here the particular case of a regular octagon) generating a kind of spiral (modelizing rather well a half-egg-shape) ?

enter image description here

Fig. 1.

But one can obtain much general type of curves as one can see on Fig. 2 (see Matlab program below). Here, four different curves ("offsets" of the first one) are displayed just by changing the curve length.

enter image description here

Fig. 2.

Last but not least, being a Frenchman, I don't resist the pleasure to offer you a "croissant" (with eggs entering into its composition :)) :

enter image description here

Fig. 3.

Matlab program (using complex numbers geometry) having generated figure 2 :

 function main;
    a=80;axis([-a,a,-a,a])
    A=[0,pi/4,pi/3,pi/2,2*pi/3,pi,5*pi/4,3*pi/2,7*pi/4,2*pi];% sides polar angles
    Lg=[1,1,3,2,7,1,4,5,20,20];% side lengths
    V=Lg.*exp(A*i);A=[A,A(1)];Lg=[Lg,Lg(1)];L=sum(Lg);
    LA=length(A);
    Pt=cumsum(V);% points, obtained by cumulating vectors
    for k=0:2:6
       C=[]; % curve
       M=L+k;
       for k=1:LA-2
          T=cs(Pt(k),M,A(k),A(k+1));
          C=[C,NaN,T];
          M=M-Lg(k+1);
       end;
       plot(C,'b','linewidth',2);hold on;
    end;
    plot(Pt,'color','r','linewidth',4);hold on
    %%%
 function T=cs(ce,r,t1,t2);% circular sector
    s=sign(t2-t1);
    T=ce+r*[0,exp(i*(t1:s*0.005:t2)),0];