Chiudi sia in verso orario che in quello antiorario la seguente catena di poligoni incernierati (stampa e ritaglia la figura). Che cosa ottieni?

Ecco, sotto, le soluzioni.


Il problema, noto come "problema del merciaio" (nella verisione originale: "come tagliare un triangolo equilatero in quattro parti e riunirle in un quadrato"), è uno dei moltissimi problemi che Martin Gardner presentò in uno dei suoi libri di giochi matematici (in cui raccolse i contenuti di una rubrica che curava sulla rivista Scientific American). Il problema era stato ideato da Henry Ernest Dudeney (vedi https://en.wikipedia.org/wiki/Henry_Dudeney).
Sotto i comandi con cui è descrivibile la soluzione del problema con R, generando la figura a destra e, poi, il solo triangolo (figura sopra a sinistra).

  
BF=4; HF=4; PLANE(0,11,0,11)
A=c(1,1); B=c(9,1); C=c(5,1+yrot(60)*8)
polyl(c(A[1],B[1],C[1],A[1]),c(A[2],B[2],C[2],A[2]),1)
text(0.5,0.5,"A",cex=0.8); text(9.5,0.5,"B",cex=0.8); text(5.5,8.5,"C",cex=0.8)
D=A+(C-A)/2; E=B+(C-B)/2
Point(D[1],D[2],1); Point(E[1],E[2],1)
text(2.5,4.5,"D",cex=0.8); text(7.5,4.5,"E",cex=0.8)
F = E+(E-A)*point_point(E[1],E[2], C[1],C[2])/point_point(E[1],E[2], A[1],A[2])
Point(F[1],F[2],1); text(9.5,6.5,"F",cex=0.8)
line(A[1],A[2], F[1],F[2], "blue")
G=A+(F-A)/2; Point(G[1],G[2],1); text(5.5,4.4,"G",cex=0.8)
circl(G[1],G[2],point_point(G[1],G[2],A[1],A[2]), "blue")
f = function(x) sqrt(point_point(G[1],G[2],A[1],A[2])^2-(x-G[1])^2)+G[2]
g = function(x) (C[2]-B[2])/(C[1]-B[1])*(x-9)+1
graph1(g,5,0, "blue")
x=solution2(f,g,4,6)
H=c(x,g(x)); text(4.6,9.6,"H",cex=0.8); Point(H[1],H[2],1)
circl(E[1],E[2],point_point(E[1],E[2],H[1],H[2]),"brown")
h = function(x) -sqrt(point_point(E[1],E[2],H[1],H[2])^2-(x-E[1])^2)+E[2]
x1=solution(h,1,2,4)
J=c(x1,h(x1)); Point(J[1],J[2],1); text(2.5,0.5,"J",cex=0.8)
line(J[1],J[2],E[1],E[2],"blue")
Point(J[1],J[2],1); Point(E[1],E[2],1)
K=c(J[1]+4,1); Point(K[1],K[2],1); text(6.5,0.5,"K",cex=0.8)
perp3p(J[1],J[2],E[1],E[2], K[1],K[2],"blue")
M=c(solut[1],solut[2]); Point(M[1],M[2],1)
perp3p(J[1],J[2],E[1],E[2], D[1],D[2],"blue")
L=c(solut[1],solut[2]); Point(L[1],L[2],1)
text(4.7,2.1,"L",cex=0.8); text(6,3,"M",cex=0.8)
#
PLANEww(1,9,1,9)
polyl(c(A[1],B[1],C[1],A[1]),c(A[2],B[2],C[2],A[2]),1)
line(J[1],J[2],E[1],E[2],1)
perp3p(J[1],J[2],E[1],E[2], K[1],K[2],1); perp3p(J[1],J[2],E[1],E[2], D[1],D[2],1)