Yates's Trisector

arm[a_,b_,w_:0.07]:=Module[{d},​​d=wNormalize[{{0,-1},{1,0}}.(b-a)];​​{EdgeForm[Thick],LightBrown,Disk[a,w],Disk[b,w],{EdgeForm[None],Polygon[{a+d,b+d,b-d,a-d}]},Black,Line[{a+d,b+d}],Line[{b-d,a-d}],Brown,Disk[a,w/2],Disk[b,w/2]}]
Manipulate​​u={Cos[t],Sin[t]};​​α=ArcTan@@u;​​If[α<0,α=2π+α];​​d={Cos[2α/3],Sin[2α/3]};​​b={1,0};​​c=d+b;​​a=2(c.d)d-c;​​e=1+1
2
d;​​f=(a+d)2;​​g=f+Normalize[(e+d)/2-f]2;​​h=e+Normalize[g-e];​​Graphics[{ColorData["Legacy","Smoke"],Rectangle[{-5,-5},{5,5}],Red,Line[{{5,0},{0,0},100a}],Disk[{0,0},0.5,{0,α}],{Dotted,Thick,Gray,Line[{{0,0},100c}],Line[{{0,0},100d}]},EdgeForm[Thick],arm[d,a],arm[b,c],arm[{0,0},b],arm[{0,0},e],arm[c,d],arm[e,h,0.05],arm[f,g,0.05],arm[h,c,0.05],Text[Style[Row[{"angle = ",Floor[α/Degree],"°"}],"Subtitle",Brown,35],{1.4,-1}]},PlotRange{{-2,2.5},{-2,2.5}},ImageSize{450,450}],​​{{t,2.5,"opening"},0,4.7},SaveDefinitionsTrue,TrackedSymbolsTrue
​
opening

CAPTION


THIS NOTEBOOK IS THE SOURCE CODE FROM
"Yates's Trisector" from the Wolfram Demonstrations Project http://demonstrations.wolfram.com/YatessTrisector/
◼
Contributed by: Jaime Rangel-Mondragon
A full-function Wolfram Mathematica system (Version 6 or higher) is required to edit this notebook.​GET WOLFRAM MATHEMATICA »
© Wolfram Demonstrations Project & Contributors|Terms of Use|Make a new version of this Demonstration »