drwho@athena.mit.edu (Jonathan Monsarrat) (06/21/91)
3D PostScript is now available! There is a new set of libraries for 3D PostScript, Warping, Tiling, and Filling Paths with Text, written by Jonathan Monsarrat and Kevin Iga at the Massachusetts Institute of Technology. You can anonymous ftp the files from eddie.mit.edu, /distrib/three-d-zone/threed-zone, which is a 115K tar file that include the libraries and several examples. In addition, a large example which takes the Dec UseNet world map and projects it onto a globe in three space is the ASCII file (not tar file) /distrib/three-d-zone/globe-threedzone.ps. Please try out the code, tell all your friends, and send us your comments. Better yet, we'd love to start a 3D PostScript image library or receive example of modified code that you make. Also, we're hoping that some of you experts can give us memory and speed optimization hints. Please send e-mail to drwho@athena.mit.edu. Thank you! -Jon and Kevin ------------------------------------------ You're traveling through another dimension. A dimension not only of length and width, but of depth. That's the signpost up ahead. Your next stop -- the POSTSCRIPT ZONE. Welcome to Zone. With it you can pretend your Postscript printer is three dimensional. This package is a set of headers that you can add to your files to make them know how to draw in three dimensions. The page, of course is a perspective two-dimensional projection of this three-dimensional drawing space. You can adjust this projection, rotate your three-dimensional coordinate system, translate, and so on. There's also linmap.ps that allows you to take a 2-d path and map it onto a plane in the three-dimensional drawing space. Or warpmap.ps that maps it onto a user-defined surface with a user-defined map. Spheres and cylinders are here as examples. zone.ps macros that allow you to draw in three dimensions linmap.ps macros that allow you to take 2-d Postscript paths and put them in a plane in the 3-d space warpmap3.ps macros that allow you to take 2-d Postscript paths and map them on an arbitrary surface in the 3-d space using a user-defined function breakpath.ps breaks the path (intended for a fill region) into trapezoids to make them more manageable for warpmap.ps spherewarp.ps a ready-defined function for warpmap that maps stereographically onto a sphere
drwho@athena.mit.edu (Jonathan Monsarrat) (06/22/91)
Thank you for the comments we've been receiving in loads! Apparently I left out some useful information in my last post. The ftp site was broken during the first 12 hours we announced it. We forgot to use 'binary more' (see below). Some of the examples simply won't work on anything less than an LPS40 or an on-line interpreter. Sorry!! We're trying to deal with memory issues for our next release. The good news is none of the code depends on having a PostScript 2 interpreter. 1 is fine. I would be happy to e-mail the stuff to anyone without ftp access. For those of you unfamiliar with ftp, my UNIX session looks like this: prompt% ftp eddie.mit.edu Connected to eddie.mit.edu. 220 eddie FTP server (Version 5.66 Sun Feb 17 13:49:17 EST 1991) ready. Name (eddie.mit.edu:drwho): anonymous 331 Guest login ok, send your user ident as password. Password: ident 230 Guest login ok, access restrictions apply. ftp> bin 200 Type set to I. ftp> cd /distrib/three-d-zone 250 CWD command successful. ftp> get threed-zone 200 PORT command successful. 150 Opening BINARY mode data connection for threed-zone (102400 bytes). 226 Transfer complete. local: threed-zone remote: threed-zone 102400 bytes received in 12 seconds (8 Kbytes/s) ftp> get globe-threedzone.ps 200 PORT command successful. 150 Opening BINARY mode data connection for globe-threedzone.ps (114741 bytes).226 Transfer complete. local: globe-threedzone.ps remote: globe-threedzone.ps 114741 bytes received in 9.6 seconds (12 Kbytes/s) ftp> quit 221 Goodbye. prompt% tar xvf threed-zone x Threed/HOWTO-EXAMPLE.txt, 6944 bytes, 14 tape blocks x Threed/breakpath.ps, 5966 bytes, 12 tape blocks x Threed/butterflywarp.ps, 331 bytes, 1 tape blocks x Threed/cylinderwarp.ps, 258 bytes, 1 tape blocks x Threed/ex_break.ps, 8289 bytes, 17 tape blocks x Threed/ex_linmap.ps, 541 bytes, 2 tape blocks x Threed/ex_norm.ps, 411 bytes, 1 tape blocks x Threed/ex_warp1.ps, 623 bytes, 2 tape blocks x Threed/ex_warp2.ps, 7653 bytes, 15 tape blocks x Threed/ex_warpclock.ps, 3888 bytes, 8 tape blocks x Threed/ex_zone.ps, 4488 bytes, 9 tape blocks x Threed/howtozone.tex, 32565 bytes, 64 tape blocks x Threed/latlongwarp.ps, 234 bytes, 1 tape blocks x Threed/linmap.ps, 669 bytes, 2 tape blocks x Threed/sphere2warp.ps, 339 bytes, 1 tape blocks x Threed/spherewarp.ps, 300 bytes, 1 tape blocks x Threed/warpmap3.ps, 937 bytes, 2 tape blocks x Threed/zone.ps, 12109 bytes, 24 tape blocks prompt% du -s Threed 94 Threed prompt% Happy hacking. -Jon Monsarrat drwho@athena.mit.edu