The Eye Beguiled: Trapped in a Cube, Between Plane and Space
by Laczik Blint, Technical University of Budapest, Hungary
laczik@goliat.eik.bme.hu
The impossible object demonstrated below is original. Similar objects can be found in Bruno Ernst's book "The Eye Beguiled" (Optical Illusions), Benedikt Taschen Verlag GmbH Kln, 1989.
> restart:with(plottools):
> delta:=1:N:=7:u:=cuboid([0,0,0],[delta,delta,delta]): v:=cuboid([0,N-1,N],[delta,N+delta,N+delta]): w:=cuboid([0,N-2,N],[delta,N+delta,N+delta]): for i from 1 to N do f[i] := cuboid([i,0,0],[i+delta,delta,delta]): g[i]:=cuboid([0,i,delta],[delta,i+delta,0]): h[i]:=cuboid([0,N,i],[delta,N+delta,i+delta]): od:
> s[1]:=sphere([0,N-2,N],0.25):s[2]:=sphere([N,delta,0],0.25):s[3]:=sphere([0,N-2,N+delta],0.25):s[4]:=sphere([N,delta,delta],0.25):
> l[1]:=line([0,N-2,N],[N,delta,0],color=red):l[2]:=line([0,N-2,N+delta],[N,delta,delta],color=red):
> plots[display](u,v,w,seq( [f[i],g[i],h[i]], i=1..N ),scaling=constrained,light=[105,32,0.32,0.9,0.7],color=green,orientation=[150,49],axes=none,projection=1,title=`1. How is this?`,titlefont=[TIMES,BOLD,25],axes=none);plots[display](u,v,w,seq( [f[i],g[i],h[i]], i=1..N ),scaling=constrained,light=[105,32,0.32,0.9,0.7],color=green,orientation=[135,39],axes=none,projection=1,title=`2. And how is this??`,titlefont=[TIMES,BOLD,25],axes=boxed);plots[display](l[1],l[2],s[1],s[2],s[3],s[4],u,v,w,seq( [f[i],g[i],h[i]], i=1..N ),scaling=constrained,light=[95,32,0.32,0.9,0.7],color=green,orientation=[163,59],axes=none,projection=1,title=`The solution: rotate the corresponding points with each other`,titlefont=[TIMES,BOLD,10],axes=boxed);
> with(geom3d):
Warning, these names have been redefined: circle, dodecahedron, hexahedron, homothety, icosahedron, line, octahedron, point, polar, reflect, rotate, sphere, stellate, tetrahedron, transform, translate
> point(P1,[0,N-2,N]):point(P2,[N,delta,0]):point(P3,[0,N-2,N+delta]):point(P4,[N,delta,delta]):point(P5,[coordinates(P1)[1],coordinates(P1)[2],0]):point(P6,[coordinates(P2)[1],coordinates(P2)[2],0]):point(P7,[0,0,0]):point(P8,[0,1,0]):
> line(L1,[P1,P2]):line(L2,[P3,P4]):line(L3,[P5,P6]):line(L4,[P7,P8]):
The points P1 to P8 represent the significant points of the impossible object that we are making. The lines L1 and L2 are lines corresponding to the points P1 to P4, while the line L3 represents the projection of L1 (or L2) onto the plane xy and the line L4 represents the y-axis. To construct and display this object correctly, we need to rotate the basic figure around the z-axis at an angle a and around the y-axis at an angle b . (We must specify a and b in terms of the 3-dimensions that we wish to view the plot from)
> #draw({L1(color=red,thickness=3),L2(color=red,thickness=3),L3(color=blue,thickness=3),L4(color=green,thickness=3)},axes=normal,labels=[x,y,z],axesfont=[TIMES,BOLD,10]);
> alpha:=evalf((Pi/2+FindAngle(L4,L3))*180/Pi);beta:=evalf((Pi/2-FindAngle(L1,L3))*180/Pi);
> AreParallel(L1,L2);
> plots[display](u,v,w,seq( [f[i],g[i],h[i]], i=1..N ),scaling=constrained,light=[105,32,0.32,0.9,0.7],color=green,orientation=[alpha,beta],axes=none,projection=1,title=`Construction with calculated angles`,titlefont=[TIMES,BOLD,15],axes=none);
>
We can make the second construction in a similar way.