Wallace-Bolyai-Gerwien theorem: an example​
​by Sándor Kabai
Please find related demonstration here

Haberdasher’s Problem

The Haberdasher's Problem is how to divide an equilateral triangle using three cuts into 4 pieces that form a square . Henry Dudeney published this as a plane rearrangement puzzle in 1902.

Wallace-Bolyai-Gerwien Theorem

The Wallace-Bolyai-Gerwien theorem states that any polygon can be dissected and rearranged into another polygon of the same area.

Example

This conceptual design can be used to demonstrate the Bolyai–Gerwien theorem in the case of triangles and rectangles . A triangle is cut into four pieces that can be rotated to form a rectangle .
In[]:=
Manipulate[u=elSqrt[3]/2;vA={1,0,0};vB={0,2u,0};vC={-1,0,0};vD={0.5,u,0};vE={-0.5,u,0};vF={-0.5,0,0};vG={0.5,0,0};​​α=ArcTan[u];x=uCos[α]Sin[α];vI={-0.5+x,xu,0};vH={0.5-x,u-xu,0};​​p1={RGBColor[1,0.6,0.7],Rotate[Polygon[{vA,vD,vH,vG}],rot,{0,1,0},{0.5,0,0}]};​​p2={RGBColor[0.3,1,0.7],Rotate[Polygon[{vD,vB,vE,vI}],-rot,{1,0,0},{0,u,0}]};​​p3={RGBColor[1,1,0.2],Rotate[Polygon[{vC,vF,vI,vE}],-rot,{0,1,0},{-0.5,0,0}]};​​p4={RGBColor[0.3,0.6,1],Rotate[Polygon[{vG,vH,vF}],rot,{1,0,0},{0,0,0}]};​​tri=Line[{vA,vB,vC,vA}];​​sD=Sphere[vD,0.04];​​sE=Sphere[vE,0.04];​​sF=Sphere[vF,0.04];​​sG=Sphere[vG,0.04];​​pD=Cylinder[{{0.5,u,0},{0.5,u,-1}},0.03];​​pD1=Cylinder[{{0.5,u,-0.3},{0.5,u,-1}},0.06];​​pE=Cylinder[{{-0.5,u,0},{-0.5,u,-1}},0.03];​​pE1=Cylinder[{{-0.5,u,-0.3},{-0.5,u,-1}},0.06];​​​​pF=Cylinder[{{-0.5,-0.1,0},{-0.5,-0.1,-1}},0.03];​​pF1=Cylinder[{{-0.5,-0.1,-0.3},{-0.5,-0.1,-1}},0.06];​​pG=Cylinder[{{0.5,-0.1,0},{0.5,-0.1,-1}},0.03];​​pG1=Cylinder[{{0.5,-0.1,-0.3},{0.5,-0.1,-1}},0.06];​​sG1=Sphere[{0.5,-0.1,0},0.04];​​sF1=Sphere[{-0.5,-0.1,0},0.04];​​base=Polygon[{{-0.7,-0.2,-1},{0.7,-0.2,-1},{0.7,1,-1},{-0.7,1,-1}}];​​ax={Red,Line[{vG,vD,vE,vF,vG}]};​​conF=Cylinder[{{-0.5,-0.1,0},{-0.5,0,0}},0.02];​​conG=Cylinder[{{0.5,-0.1,0},{0.5,0,0}},0.02];​​Graphics3D[{conF,conG,If[axs,ax,{}],tri,base,sG1,sF1,p1,p2,p3,p4,sD,sE,sF,sG,pD,pD1,pE,pE1,pF,pF1,pG,pG1},ImageSize{380,350},ViewAnglePi/55,SphericalRegionTrue,BoxedFalse,ViewPoint{2,-10,8},PlotRange{{-1,1},{-1,2.1},{-1,0.5}}],​​{{rot,0,"rotate"},0,Pi},​​{{el,1,"elongate"},0.6,1.2},​​{{axs,False,"show axes of rotation"},{False,True}},TrackedSymbolsManipulate,SaveDefinitionsTrue]
Out[]=
​
rotate
elongate
show axes of rotation