Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. documentclass[x11names, svgnames, dvipsnames,tikz,border=3.14mm]{standalone}
  2. begin{document}
  3. tikzset{pics/.cd,
  4. image jigsaw/.style args={img at #1 and #2/#3/#4/#5}{
  5. code={%
  6. draw[path picture={%
  7. node at #1
  8. {edeftemp{noexpandincludegraphics[pgfkeysvalueof{/tikz/jigsaw/img options}]{pgfkeysvalueof{/tikz/jigsaw/img}}}
  9. temp};}] (-2,-0.35) to[out=90,in={90+#2*45}] ({-2+0.5*#2},-0.45)
  10. arc({-135-(#2-1)*45}:{(#2-1)*180+135+(#2-1)*45}:0.6 and
  11. {0.45*sqrt(2)}) to[out=-90-#2*45,in=-90] (-2,0.35) |- (-0.35,2)
  12. to[out=0,in={0+#3*45}] (-0.45,2-0.5*#3) arc(180-#3*45:{(#3+1)*180+#3*45}:{0.45*sqrt(2)} and 0.6)
  13. to[out=-180-#3*45,in=180] (0.35,2) -| (2,0.35)
  14. to[out=-90,in=270+#4*45] (2-#4*0.5,0.45)
  15. arc(90-#4*45:{(#4+1)*180-90+#4*45}:0.6 and {0.45*sqrt(2)})
  16. to[out=90-#4*45,in=90] (2,-0.35) |- (0.35,-2)
  17. to[out=180,in=-180+#5*45] (0.45,-2+#5*0.5) arc(-#5*45:{(#5-1)*180+180+#5*45}:{0.45*sqrt(2)} and 0.6)
  18. to[out=-#5*45,in=0] (-0.35,-2) -| cycle;
  19. }},
  20. /tikz/jigsaw/.cd,img/.initial={example-image-duck},img options/.initial={}
  21. }
  22. % order : left/top/right/bottom and -1 is out, 1 is in, 0 none
  23. foreach X in {0,0.1,...,1,0.9,0.8,...,0.1}
  24. {begin{tikzpicture}
  25. path[use as bounding box] (-3,-3) rectangle (3,3);
  26. draw (-1-X,-1-X) pic[scale=0.25]{image jigsaw=img at {(4,4)} and 0/-1/1/0}
  27. (0,-1-X) pic[scale=0.25]{image jigsaw=img at {(0,4)} and -1/-1/1/0}
  28. (1+X,-1-X) pic[scale=0.25]{image jigsaw=img at {(-4,4)} and -1/1/0/0}
  29. (-1-X,0) pic[scale=0.25]{image jigsaw=img at {(4,0)} and 0/1/-1/1}
  30. (0,0) pic[scale=0.25]{image jigsaw=img at {(0,0)} and 1/-1/1/1}
  31. (1+X,0) pic[scale=0.25]{image jigsaw=img at {(-4,0)} and -1/1/0/-1}
  32. (-1-X,1+X) pic[scale=0.25]{image jigsaw=img at {(4,-4)} and 0/0/1/-1}
  33. (0,1+X) pic[scale=0.25]{image jigsaw=img at {(0,-4)} and -1/0/1/1}
  34. (1+X,1+X) pic[scale=0.25]{image jigsaw=img at {(-4,-4)} and -1/0/0/-1};
  35. end{tikzpicture}}
  36. end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement