%This command draw either the escher knot (the original image) %or the escher impossible brick (the new one). % %The Macro use the global (to the page 10) toggle "OriginalImage" % %The macro has one parameter: % 1) The size to use to typeset the content \newcommand\TTenDisplayImage[1]{% \parbox[t]{#1}{% \iftoggle{OriginalImage}{% \vfill \iftoggle{DVIOutput}{% \centerline{\includegraphics[viewport=0 0 135 125]{escher.ps}}% }{% \centerline{\includegraphics[viewport=0 0 135 125]{escher.pdf}}% }% }{% % Author: Julien Cretel % Date: 24/02/2013 % %The code was published here: %http://www.texample.net/tikz/examples/escher-brick-penrose-triangle/ % \savebox\ImpossibleBrick{% \begin{tikzpicture}[scale=4, line join=bevel] % \a and \b are two macros defining characteristic % dimensions of the impossible brick. \pgfmathsetmacro{\a}{0.18} \pgfmathsetmacro{\b}{1.37} \tikzset{% apply style/.code={\tikzset{##1}}, brick_edges/.style={thick,draw=black}, face_colourA/.style={fill=gray!50}, face_colourB/.style={fill=gray!25}, face_colourC/.style={fill=gray!90}, } \foreach \theta/\v/\facestyleone/\facestyletwo in {% 0/0/{brick_edges,face_colourA}/{brick_edges,face_colourC}, 180/-\a/{brick_edges,face_colourB}/{brick_edges,face_colourC} }{ \begin{scope}[rotate=\theta,shift={(\v,0)}] \draw[apply style/.expand once=\facestyleone] ({-.5*\b},{1.5*\a}) -- ++(\b,0) -- ++(-\a,-\a) -- ++({-\b+2*\a},0) -- ++(0,-{2*\a}) -- ++(\b,0) -- ++(-\a,-\a) -- ++(-\b,0) -- cycle; \draw[apply style/.expand once=\facestyletwo] ({.5*\b},{1.5*\a}) -- ++(0,{-2*\a}) -- ++(-\a,0) -- ++(0,\a) -- cycle; \end{scope} } \end{tikzpicture}} \par \centerline{\usebox\ImpossibleBrick} } } }