Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!bionet!agate!shelby!neon!lucid.com!jwz From: jwz@lucid.com (Jamie Zawinski) Newsgroups: comp.lang.postscript Subject: Re: characters in perspective Message-ID: Date: 7 Oct 90 22:28:22 GMT References: <1990Oct5.155219.442@morrow.stanford.edu> <1610@chinacat.Unicom.COM> Sender: jwz@lucid.com Organization: Lucid, Inc., Menlo Park, CA Lines: 41 In-reply-to: woody@chinacat.Unicom.COM's message of 7 Oct 90 04:57:50 GMT I find all this eexec code Woody spews forth pretty repulsive. This is a completely wrong way to approach such problems. It is on the level of hackers who think that code like UBYTE *port; port = (UBYTE *)12574977L; *port = 0x04; *port = 0x06; is an acceptable way to write to a given machine's parallel port! It is because of code like this, and the slash-and-burn philosophy which produces it, that many programs stop working when new releases of operating systems come out, and that 80% of what Woody posts works only on the current incarnation of Apple LaserWriters. Don't take it too personally, Woody; you know a lot about PostScript, but I really think you're applying that knowledge in an amazingly bad way. Anyway, retracing the path of a letter isn't going to let you draw it in perspective without a lot more work. > A rotated, 3-dimensional plot shown in perspective requires characters with > bounding boxes that are trapezoids. More than that; consider: ---- ---- / \ /____\ /______\ / \ / \ / \ / \ / \ -------------- -------------- two squares, mapped onto two squares, true a trapezoid perspective The midpoint moves; it's not a linear progression. If PostScript matrices were true 3x3 matrixes, you could specify an arbitrary 3d scale/rotation/translation, but they have their last column hardwired to "0 0 1" (identity). Implementing true 3d mappings would mean implementing a new matrix library, or faking it. -- Jamie