(* Hipparchus *)

rr=1.0; r1=0.6;ss=r1*rr; ww=2; zz=0.08; ee=1.2*(rr+ss); ff=1.3*(rr+ss);
nn=100; theta=2*Pi/nn;
EEE={GrayLevel[1.0],AbsoluteThickness[2],Circle[{0,0},ee]};
FFF=Polygon[{{-ff,-ff},{ff,-ff},{ff,ff},{-ff,ff},{-ff,-ff}}];
CCC={RGBColor[0.1,0.1,1.0],AbsoluteThickness[2],Circle[{0,0},rr]};
TDD=Table[Circle[{rr*Cos[jj*theta],rr*Sin[jj*theta]},ss],{jj,0,nn}];
TLL=Table[Line[{{0,0},{rr*Cos[jj*theta],rr*Sin[jj*theta]}}],{jj,0,nn}];
TMM=Table[Line[{{rr*Cos[jj*theta],rr*Sin[jj*theta]},{rr*Cos[jj*theta]+ss*Cos[ww*jj*theta],rr*Sin[jj*theta]+ss*Sin[ww*jj*theta]}}],{jj,0,nn}];
TNN=Table[Line[{{0,0},{rr*Cos[jj*theta]+ss*Cos[ww*jj*theta],rr*Sin[jj*theta]+ss*Sin[ww*jj*theta]}}],{jj,0,nn}];
Taa=Table[Disk[{0,0},zz*rr],{jj,0,nn}];
Tbo=Table[{rr*Cos[jj*theta],rr*Sin[jj*theta]},{jj,0,nn}];
Tbb=Table[Disk[Tbo[[jj]],zz*ss],{jj,1,nn+1}];
Tpo=Table[{rr*Cos[jj*theta]+ss*Cos[ww*jj*theta],rr*Sin[jj*theta]+ss*Sin[ww*jj*theta]},{jj,0,nn}];
Tpp=Table[Disk[Tpo[[jj]],zz*ss],{jj,1,nn+1}];
Tqo=Table[{Sqrt[(rr*Cos[jj*theta]+ss*Cos[ww*jj*theta])^2+(rr*Sin[jj*theta]+ss*Sin[ww*jj*theta])^2]^(-1)*(rr*Cos[jj*theta]+ss*Cos[ww*jj*theta]),Sqrt[(rr*Cos[jj*theta]+ss*Cos[ww*jj*theta])^2+(rr*Sin[jj*theta]+ss*Sin[ww*jj*theta])^2]^(-1)*(rr*Sin[jj*theta]+ss*Sin[ww*jj*theta])},{jj,0,nn}];
Tqq=Table[Disk[ee*Tqo[[jj]],zz*ss],{jj,1,nn+1}];
EEG=Graphics[EEE];
FFG=Graphics[FFF];
CCG=Graphics[CCC];
TDG=Table[Graphics[{RGBColor[1,0,0],AbsoluteThickness[2],TDD[[jj]]}],{jj,1,nn+1}];
TLG=Table[Graphics[{GrayLevel[1.0],AbsoluteThickness[2],TLL[[jj]]}],{jj,1,nn+1}];
TMG=Table[Graphics[{GrayLevel[1.0],AbsoluteThickness[2],TMM[[jj]]}],{jj,1,nn+1}];
TNG=Table[Graphics[{RGBColor[1,0,0],AbsoluteThickness[2],TNN[[jj]]}],{jj,1,nn+1}];
TaG=Table[Graphics[{RGBColor[0.1,0.1,1.0],Taa[[jj]]}],{jj,1,nn+1}];
TbG=Table[Graphics[{GrayLevel[0.7],Tbb[[jj]]}],{jj,1,nn+1}];
TpG=Table[Graphics[{RGBColor[1,0,0],Tpp[[jj]]}],{jj,1,nn+1}];
TqG=Table[Graphics[{GrayLevel[1.0],Tqq[[jj]]}],{jj,1,nn+1}];
TH1=Table[Show[FFG,EEG,CCG,TDG[[jj]],TLG[[jj]],TMG[[jj]],TNG[[jj]],TaG[[jj]],TbG[[jj]],TpG[[jj]],AspectRatio->Automatic],{jj,1,nn+1}];
TH2=Table[Show[FFG,EEG,CCG,TNG[[jj]],TaG[[jj]],TpG[[jj]],TqG[[jj]],AspectRatio->Automatic],{jj,1,nn+1}];
Trp=Table[Table[Tpo[[kk]],{kk,1,jj}],{jj,1,nn+1}];
TrG=Table[Graphics[{RGBColor[1,0,0],AbsoluteThickness[2],Line[Trp[[jj]]]}],{jj,1,nn+1}];
TH3=Table[Show[FFG,EEG,CCG,TDG[[jj]],TLG[[jj]],TMG[[jj]],TNG[[jj]],TaG[[jj]],TbG[[jj]],TpG[[jj]],TrG[[jj]],AspectRatio->Automatic],{jj,1,nn+1}];
TH4=Table[Show[FFG,EEG,CCG,TNG[[jj]],TaG[[jj]],TpG[[jj]],TqG[[jj]],TrG[[jj]],AspectRatio->Automatic],{jj,1,nn+1}];

ListAnimate[TH1,10,AnimationRepetitions->2]

ListAnimate[TH2,5,AnimationRepetitions->2]

ListAnimate[TH3,10,AnimationRepetitions->2]

ListAnimate[TH4,5,AnimationRepetitions->2]

re=1.0; rq=1.6;rm=rq*re; ww=2; zz=0.08; uu=1.2*rm; gg=1.3*rm;
nn=100; theta=4*Pi/nn;
SSS={RGBColor[1.0,1.0,0.0],Disk[{0,0},1.5*zz*re]};
UUU={GrayLevel[1.0],AbsoluteThickness[2],Circle[{0,0},uu]};
BBB=Polygon[{{-gg,-gg},{gg,-gg},{gg,gg},{-gg,gg},{-gg,-gg}}];
EEC={RGBColor[0.0,0.0,1.0],AbsoluteThickness[2],Circle[{0,0},re]};
EEP=Table[{RGBColor[0.0,0.0,1.0],Disk[{re*Cos[jj*theta],re*Sin[jj*theta]},zz*re]},{jj,0,nn}];
EEL=Table[{GrayLevel[1.0],AbsoluteThickness[2],Line[{{0,0},{re*Cos[jj*theta],re*Sin[jj*theta]}}]},{jj,0,nn}];
MMC={RGBColor[1.0,0.0,0.0],AbsoluteThickness[2],Circle[{0,0},rm]};
MMP=Table[{RGBColor[1.0,0.0,0.0],Disk[{rm*Cos[(1/ww)*jj*theta],rm*Sin[(1/ww)*jj*theta]},0.6*zz*re]},{jj,0,nn}];
MML=Table[{GrayLevel[1.0],AbsoluteThickness[2],Line[{{0,0},{rm*Cos[(1/ww)*jj*theta],rm*Sin[(1/ww)*jj*theta]}}]},{jj,0,nn}];
GSS=Graphics[SSS];
GUU=Graphics[UUU];
GBB=Graphics[BBB];
GEC=Graphics[EEC];
GMC=Graphics[MMC];
TEP=Table[Graphics[EEP[[jj]]],{jj,1,nn+1}];
TEL=Table[Graphics[EEL[[jj]]],{jj,1,nn+1}];
TMP=Table[Graphics[MMP[[jj]]],{jj,1,nn+1}];
TML=Table[Graphics[MML[[jj]]],{jj,1,nn+1}];
TH5=Table[Show[GBB,GUU,TEL[[jj]],GEC,TML[[jj]],GMC,TEP[[jj]],TMP[[jj]],GSS,AspectRatio->Automatic],{jj,1,nn+1}];

ListAnimate[TH5,5,AnimationRepetitions->2]

re=1.0; rq=1.6;rm=rq*re; ww=2; zz=0.08; uu=1.2*(re+rm); gg=1.3*(re+rm);
nn=100; theta=4*ww*Pi/nn;
EEE={RGBColor[0.0,0.0,1.0],Disk[{0,0},zz*re]};
UUU={GrayLevel[1.0],AbsoluteThickness[2],Circle[{0,0},uu]};
BBB=Polygon[{{-gg,-gg},{gg,-gg},{gg,gg},{-gg,gg},{-gg,-gg}}];
SSC={RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],Circle[{0,0},re]};
SSP=Table[{RGBColor[1.0,1.0,0.0],Disk[{-re*Cos[jj*theta],-re*Sin[jj*theta]},1.5*zz*re]},{jj,0,nn}];
SSL=Table[{GrayLevel[1.0],AbsoluteThickness[2],Line[{{0,0},{-re*Cos[jj*theta],-re*Sin[jj*theta]}}]},{jj,0,nn}];
(* MMC={RGBColor[1.0,0.0,0.0],AbsoluteThickness[2],Circle[{0,0},rm]}; *)
MMP=Table[{RGBColor[1.0,0.0,0.0],Disk[{rm*Cos[(1/ww)*jj*theta]-re*Cos[jj*theta],rm*Sin[(1/ww)*jj*theta]-re*Sin[jj*theta]},0.6*zz*re]},{jj,0,nn}];
MML=Table[{GrayLevel[1.0],AbsoluteThickness[2],Line[{{0,0},{rm*Cos[(1/ww)*jj*theta]-re*Cos[jj*theta],rm*Sin[(1/ww)*jj*theta]-re*Sin[jj*theta]}}]},{jj,0,nn}];
GEE=Graphics[EEE];
GUU=Graphics[UUU];
GBB=Graphics[BBB];
GSC=Graphics[SSC];
(* GMC=Graphics[MMC]; *)
TSP=Table[Graphics[SSP[[jj]]],{jj,1,nn+1}];
TSL=Table[Graphics[SSL[[jj]]],{jj,1,nn+1}];
TMP=Table[Graphics[MMP[[jj]]],{jj,1,nn+1}];
TML=Table[Graphics[MML[[jj]]],{jj,1,nn+1}];
TH6=Table[Show[GBB,GUU,TSL[[jj]],GSC,TML[[jj]],GMC,TSP[[jj]],TMP[[jj]],GEE,AspectRatio->Automatic],{jj,1,nn+1}];
Tpo=Table[{rm*Cos[(1/ww)*jj*theta]-re*Cos[jj*theta],rm*Sin[(1/ww)*jj*theta]-re*Sin[jj*theta]},{jj,0,nn}];
MMO=Table[{RGBColor[0.5,0.2,0.5],AbsoluteThickness[2],Line[Table[Tpo[[kk]],{kk,1,jj}]]},{jj,1,nn+1}];
TMO=Table[Graphics[MMO[[jj]]],{jj,1,nn+1}];
TH7=Table[Show[GBB,GUU,TSL[[jj]],GSC,GMC,TMO[[jj]],TML[[jj]],TSP[[jj]],TMP[[jj]],GEE,AspectRatio->Automatic],{jj,1,nn+1}];

ListAnimate[TH6,5,AnimationRepetitions->2]

ListAnimate[TH7,5,AnimationRepetitions->2]

ro=1.0; fc=0.4*ro;ec=-fc; vv=1.2*(fc+ro); zz=0.05; gg=fc+1.1*vv;
(* Replace preceding/following line by following/preceding line. *)(* ro=1.0; fc=0.4*ro;ec=0; ro=1.2*(fc+ro); zz=0.05; gg=fc+1.1*vv; *)
nn=100; beta=4*Pi/nn;
EEE={RGBColor[0.0,0.0,1.0],Disk[{ec,0},1.5*zz]};
CCC={GrayLevel[1.0],Disk[{0,0},zz]};
FFF={RGBColor[0.0,1.0,0.0],Disk[{fc,0},zz]};
UUU={RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],Circle[{0,0},ro]};
VVV={RGBColor[1.0,1.0,1.0],AbsoluteThickness[2],Circle[{ec,0},vv]};
BBB=Polygon[{{-gg,-gg},{gg,-gg},{gg,gg},{-gg,gg},{-gg,-gg}}];
GEE=Graphics[EEE];
GCC=Graphics[CCC];
GFF=Graphics[FFF];
GUU=Graphics[UUU];
GVV=Graphics[VVV];
GBB=Graphics[BBB];
TFR=Table[-fc*Cos[jj*beta]+Sqrt[fc^2*(Cos[jj*beta]^2-1)+ro^2],{jj,0,nn}];
TFX=Table[fc+TFR[[jj+1]]*Cos[jj*beta],{jj,0,nn}];
TFY=Table[TFR[[jj+1]]*Sin[jj*beta],{jj,0,nn}];
TXY=Table[{RGBColor[1.0,1.0,0.0],Disk[{TFX[[jj]],TFY[[jj]]},1.8*zz]},{jj,1,nn+1}];
GXY=Table[Graphics[TXY[[jj]]],{jj,1,nn+1}];
TEP=Table[{RGBColor[0.5,0.5,1.0],AbsoluteThickness[2],Line[{{ec,0},{TFX[[jj]],TFY[[jj]]}}]},{jj,1,nn+1}];
GEP=Table[Graphics[TEP[[jj]]],{jj,1,nn+1}];
TFP=Table[{RGBColor[0.5,1.0,0.5],AbsoluteThickness[2],Line[{{fc,0},{TFX[[jj]],TFY[[jj]]}}]},{jj,1,nn+1}];
GFP=Table[Graphics[TFP[[jj]]],{jj,1,nn+1}];

DDD=Table[Sqrt[(TFX[[jj]]-ec)^2+(TFY[[jj]])^2],{jj,1,nn+1}];
TSX=Table[ec+(vv/DDD[[jj]])*(TFX[[jj]]-ec),{jj,1,nn+1}];
TSY=Table[(vv/DDD[[jj]])*TFY[[jj]],{jj,1,nn+1}];
TSXY=Table[{RGBColor[1.0,1.0,1.0],Disk[{TSX[[jj]],TSY[[jj]]},1.8*zz]},{jj,1,nn+1}];
GSXY=Table[Graphics[TSXY[[jj]]],{jj,1,nn+1}];
TSSS=Table[{RGBColor[0.5,0.5,1.0],AbsoluteThickness[2],Line[{{ec,0},{TSX[[jj]],TSY[[jj]]}}]},{jj,1,nn+1}];
GSSS=Table[Graphics[TSSS[[jj]]],{jj,1,nn+1}];

TH8=Table[Show[GBB,GUU,GVV,GFP[[jj]],GEP[[jj]],GSSS[[jj]],GCC,GFF,GEE,GXY[[jj]],GSXY[[jj]],AspectRatio->Automatic],{jj,1,nn+1}];

ListAnimate[TH8,5,AnimationRepetitions->2]

rr={1.0,0.6,0.4,0.2}; ph={0.00,0.25,-0.50,0.50}; ff={1.0,2.0,3.0,-4.0};  mm=Length[rr]; nn=200; theta=(2*Pi)/nn; dd=0.08; 
OO=Graphics[{RGBColor[0.0,0.0,1.0],Disk[{0,0},dd]}];
OC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],Circle[{0,0},rr[[1]]]}];
PP=Table[Sum[rr[[jj]]*Exp[I*ph[[jj]]],{jj,1,kk}],{kk,1,mm}];
PR=Table[{Re[PP[[kk]]],Im[PP[[kk]]]},{kk,1,mm}];
PD=Table[Disk[PR[[kk]],0.8*dd],{kk,1,mm}];
GP=Graphics[{RGBColor[1.0,1.0,1.0],PD}];
PC=Table[Circle[PR[[kk]],rr[[kk+1]]],{kk,1,mm-1}];
GC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],PC}];
BA=Table[Sum[rr[[kk]]*Exp[I*jj*ff[[kk]]*theta+I*ph[[kk]]],{kk,1,mm}],{jj,0,nn}];
mx=Sum[rr[[kk]],{kk,1,mm}]; nx=1.2*mx;
TW=Table[{Re[BA[[jj]]],Im[BA[[jj]]]},{jj,1,nn+1}];
AW=Line[TW];
AM=Graphics[{RGBColor[1.0,0.0,0.0],AbsoluteThickness[2],AW}];
FR=Polygon[{{-nx,-nx},{nx,-nx},{nx,nx},{-nx,nx},{-nx,-nx}}];
GR=Graphics[{RGBColor[0.0,0.0,0.0],FR}];
GL=Graphics[{RGBColor[1.0,0.0,0.0],PD[[mm]]}];

Show[GR,OO,OC,AM,GP,GC,GL,AspectRatio->Automatic]

rr={1.0,0.6,0.4,0.2}; ph={0.00,0.00,0.00,0.00}; ff={1.0,2.0,3.0,4.0};  mm=Length[rr]; nn=200; theta=(2*Pi)/nn; dd=0.08; 
OO=Graphics[{RGBColor[0.0,0.0,1.0],Disk[{0,0},dd]}];
OC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],Circle[{0,0},rr[[1]]]}];
PP=Table[Sum[rr[[jj]]*Exp[I*ph[[jj]]],{jj,1,kk}],{kk,1,mm}];
PR=Table[{Re[PP[[kk]]],Im[PP[[kk]]]},{kk,1,mm}];
PD=Table[Disk[PR[[kk]],0.8*dd],{kk,1,mm}];
GP=Graphics[{RGBColor[1.0,1.0,1.0],PD}];
PC=Table[Circle[PR[[kk]],rr[[kk+1]]],{kk,1,mm-1}];
GC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],PC}];
BA=Table[Sum[rr[[kk]]*Exp[I*jj*ff[[kk]]*theta+I*ph[[kk]]],{kk,1,mm}],{jj,0,nn}];
mx=Sum[rr[[kk]],{kk,1,mm}]; nx=1.2*mx;
TW=Table[{Re[BA[[jj]]],Im[BA[[jj]]]},{jj,1,nn+1}];
AW=Line[TW];
AM=Graphics[{RGBColor[1.0,0.0,0.0],AbsoluteThickness[2],AW}];
FR=Polygon[{{-nx,-nx},{nx,-nx},{nx,nx},{-nx,nx},{-nx,-nx}}];
GR=Graphics[{RGBColor[0.0,0.0,0.0],FR}];
GL=Graphics[{RGBColor[1.0,0.0,0.0],PD[[mm]]}];

Show[GR,OO,OC,AM,GP,GC,GL,AspectRatio->Automatic]

rr={1.0,0.4,0.3,0.2,0.1}; ph={0.00,0.00,0.00,0.00,0.00}; ff={1.0,-2.0,2.0,-5.0,5.0};  mm=Length[rr]; nn=200; theta=(2*Pi)/nn; dd=0.08; 
OO=Graphics[{RGBColor[0.0,0.0,1.0],Disk[{0,0},dd]}];
OC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],Circle[{0,0},rr[[1]]]}];
PP=Table[Sum[rr[[jj]]*Exp[I*ph[[jj]]],{jj,1,kk}],{kk,1,mm}];
PR=Table[{Re[PP[[kk]]],Im[PP[[kk]]]},{kk,1,mm}];
PD=Table[Disk[PR[[kk]],0.5*dd],{kk,1,mm}];
GP=Graphics[{RGBColor[1.0,1.0,1.0],PD}];
PC=Table[Circle[PR[[kk]],rr[[kk+1]]],{kk,1,mm-1}];
GC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],PC}];
BA=Table[Sum[rr[[kk]]*Exp[I*jj*ff[[kk]]*theta+I*ph[[kk]]],{kk,1,mm}],{jj,0,nn}];
mx=Sum[rr[[kk]],{kk,1,mm}]; nx=1.2*mx;
TW=Table[{Re[BA[[jj]]],Im[BA[[jj]]]},{jj,1,nn+1}];
AW=Line[TW];
AM=Graphics[{RGBColor[1.0,0.0,0.0],AbsoluteThickness[2],AW}];
FR=Polygon[{{-nx,-nx},{nx,-nx},{nx,nx},{-nx,nx},{-nx,-nx}}];
GR=Graphics[{RGBColor[0.0,0.0,0.0],FR}];
GL=Graphics[{RGBColor[1.0,0.0,0.0],PD[[mm]]}];

Show[GR,OO,OC,AM,GP,GC,GL,AspectRatio->Automatic]

rr={1.0,0.6}; ph={0.00,0.00}; ff={1.0,5.0};  mm=Length[rr]; nn=200; theta=(2*Pi)/nn; dd=0.08; 
OO=Graphics[{RGBColor[0.0,0.0,1.0],Disk[{0,0},dd]}];
OC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],Circle[{0,0},rr[[1]]]}];
PP=Table[Sum[rr[[jj]]*Exp[I*ph[[jj]]],{jj,1,kk}],{kk,1,mm}];
PR=Table[{Re[PP[[kk]]],Im[PP[[kk]]]},{kk,1,mm}];
PD=Table[Disk[PR[[kk]],0.5*dd],{kk,1,mm}];
GP=Graphics[{RGBColor[1.0,1.0,1.0],PD}];
PC=Table[Circle[PR[[kk]],rr[[kk+1]]],{kk,1,mm-1}];
GC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],PC}];
BA=Table[Sum[rr[[kk]]*Exp[I*jj*ff[[kk]]*theta+I*ph[[kk]]],{kk,1,mm}],{jj,0,nn}];
mx=Sum[rr[[kk]],{kk,1,mm}]; nx=1.2*mx;
TW=Table[{Re[BA[[jj]]],Im[BA[[jj]]]},{jj,1,nn+1}];
AW=Line[TW];
AM=Graphics[{RGBColor[1.0,0.0,0.0],AbsoluteThickness[2],AW}];
FR=Polygon[{{-nx,-nx},{nx,-nx},{nx,nx},{-nx,nx},{-nx,-nx}}];
GR=Graphics[{RGBColor[0.0,0.0,0.0],FR}];
GL=Graphics[{RGBColor[1.0,0.0,0.0],PD[[mm]]}];

Show[GR,OO,OC,AM,GP,GC,GL,AspectRatio->Automatic]

rr={1.0,0.6}; ph={0.00,0.00}; ff={1.0,-5.0};  mm=Length[rr]; nn=200; theta=(2*Pi)/nn; dd=0.08; 
OO=Graphics[{RGBColor[0.0,0.0,1.0],Disk[{0,0},dd]}];
OC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],Circle[{0,0},rr[[1]]]}];
PP=Table[Sum[rr[[jj]]*Exp[I*ph[[jj]]],{jj,1,kk}],{kk,1,mm}];
PR=Table[{Re[PP[[kk]]],Im[PP[[kk]]]},{kk,1,mm}];
PD=Table[Disk[PR[[kk]],0.5*dd],{kk,1,mm}];
GP=Graphics[{RGBColor[1.0,1.0,1.0],PD}];
PC=Table[Circle[PR[[kk]],rr[[kk+1]]],{kk,1,mm-1}];
GC=Graphics[{RGBColor[1.0,1.0,0.0],AbsoluteThickness[2],PC}];
BA=Table[Sum[rr[[kk]]*Exp[I*jj*ff[[kk]]*theta+I*ph[[kk]]],{kk,1,mm}],{jj,0,nn}];
mx=Sum[rr[[kk]],{kk,1,mm}]; nx=1.2*mx;
TW=Table[{Re[BA[[jj]]],Im[BA[[jj]]]},{jj,1,nn+1}];
AW=Line[TW];
AM=Graphics[{RGBColor[1.0,0.0,0.0],AbsoluteThickness[2],AW}];
FR=Polygon[{{-nx,-nx},{nx,-nx},{nx,nx},{-nx,nx},{-nx,-nx}}];
GR=Graphics[{RGBColor[0.0,0.0,0.0],FR}];
GL=Graphics[{RGBColor[1.0,0.0,0.0],PD[[mm]]}];

Show[GR,OO,OC,AM,GP,GC,GL,AspectRatio->Automatic]