Path: utzoo!attcan!uunet!paralogics!shaw From: shaw@paralogics.UUCP (Guy Shaw) Newsgroups: comp.lang.postscript Subject: Re: Optical Illusion Summary: M. C. Escher style impossible triangle Message-ID: <266@paralogics.UUCP> Date: 13 Apr 90 06:03:50 GMT References: <1034@cnca.cnca-cam.fr> <1144@chinacat.Unicom.COM> Organization: Paralogics; Santa Monica, CA Lines: 65 In article <1144@chinacat.Unicom.COM>, woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) writes: > . . . How about y'all posting some. Does anyone have any Escher? (sic) I don't have an impossible nut, but here is an impossible triangle. %! % M. C. Escher style impossible triangle % written by Guy Shaw % Things that are easy to play with: % Position on paper, overall size, and linewidth /inch { 72 mul } bind def 2 inch dup translate 3 inch dup scale 1 3 inch div setlinewidth % Thickness parameter: % /Thick is the thickness of the structural members of the triange, % as a fraction of the height of the triangle. % Reasonable looking impossible triangles can be obtained with Thick <= 1/6. % right at /Thick == 1/6, there is no space left inside the triangle. % /Thick > 1/6 yields bizarre, but not very interesting results. % /Thick < 1/20 is less interesting, because the "impossibility" % is not so striking when the structural members are that thin. % A good "standard" value is 1/8. /Thick 1 8 div def % You would not normally want to change anything that follows. /Tall 1 def /HalfThick Thick .5 mul def newpath HalfThick Thick moveto Thick 0 lineto 1 Thick sub 0 lineto 1 HalfThick sub Thick lineto .5 HalfThick add Tall Thick sub lineto 1 Thick sub 0 moveto .5 HalfThick add Tall 3 Thick mul sub lineto Thick 3 mul Thick 2 mul lineto 1 Thick 2.5 mul sub Thick moveto .5 Tall Thick 4 mul sub lineto stroke newpath HalfThick Thick moveto 1 Thick 2.5 mul sub Thick lineto HalfThick neg Thick rlineto Thick Thick add Thick Thick add lineto .5 HalfThick add Tall Thick sub lineto Thick neg 0 rlineto closepath fill showpage -- Guy Shaw Paralogics paralogics!shaw@uunet.uu.net or uunet!paralogics!shaw