Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!chinacat!woody From: woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) Newsgroups: comp.lang.postscript Subject: Re: characters in perspective Summary: hmmmm.... Message-ID: <1614@chinacat.Unicom.COM> Date: 8 Oct 90 02:49:20 GMT References: <1990Oct5.155219.442@morrow.stanford.edu> Organization: a guest of Unicom Systems Development, Austin Lines: 75 In article , jwz@lucid.com (Jamie Zawinski) writes: > 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 Well, on the earlier adobe printers you could get the points along a character outline by stackin clippaths. The interpreter would then forget about the charpath lockout. If Adobe had not been so paranoid about people using thier fonts, and had made the outline available from the start, this little bit of code would not be needed. They have documented the details now, much to thier credit (applause....), but still have the points locked out. I hope that they see fit to remove this restriction in the future, as it is no longer "important" and certainly not to thier advantage to restrict access to the character paths. Currently there is no other way to access them. > > UBYTE *port; > port = (UBYTE *)12574977L; > *port = 0x04; > *port = 0x06; > > is an acceptable way to write to a given machine's parallel port! It is Gads no! No true hacker would stoop so low! Suppose it was not memory mapped? A true hacker would do something like outport(x,y) char *y;r char x; { union REGS ireg; ireg.h.ah=0x04;e ireg.x.ds=y; int86(&iregs,&iregs); } 8=} Thatway it is not only tied to a machine, but to an operating system and perhaps a bios as well ;=> > come out, and that 80% of what Woody posts works only on the current > incarnation of Apple LaserWriters. I don't think it is 80%, but you are right, it does work only on current incarnations of 68000 based laserprinters in general. That happens to cover something like 85-95% of the installed base of laser printers out there, so why not? At any rate, you cannot achieve certain things easily with a 2 dimensional matrix (x and y). Sure would have been nice to have had 3D, and if I were specifing the latest and greatest Postscript it would. Along with a nice curve tracer that given a set of points would return the curveto arguments... > > > Anyway, retracing the path of a letter isn't going to let you draw it in > perspective without a lot more work. Actualy it really is not that much more work. you simply have to create a mapping function that takes an x and y point, and modifies it. I've seen some of the mind bending things that Don has done with perspective work. Fixing the pathfor all sure beats pixel line remapping. For those of you who don't know, pixel line remapping involves setting a clipping mask to be 1 pixel wide. Then you scale a font, print it with the clipping mask in place, move the mask over 1 pixel, rescale the font (character) print it etc etc. It is possible to do true perspective drawings this way, as well as wrap letters around cylinders etc.etc. it is slow. Cheers Woody