Text preview for : A564 DI3000 User Experience; Alberg.pdf part of IBM A564 DI3000 User Experience; Alberg IBM share SHARE_61_Proceedings_Volume_1_Summer_1983 A564 DI3000 User Experience; Alberg.pdf



Back to : A564 DI3000 User Experien | Home

---
SESSION REPORT ~SHARE~
"=
__ ~l. __ _ _ a2.6.1!_________ __lll3QQQ _ll_eJl;r_~;ri=-e.---- _____
__ _ ~---
SHARE NO. SESSION NO. seSSION TITLE ATTENDANCE

Graphics E!'l.ucat;ion ___________ Gail Garrison GFC (The information in this section is drawn heavily from the Introduction to
PROJECT SESSION CHAIRMAN INST.CODE the DI-3000 User's Guide and the DI-3000 Short Course -- Instructor's Manual.)
___-.!!hite Plains, New York (General Foods ~-.2.~126L ___ Precision Visuals set out to create a flexible and durable graphics system
SESSION CHAIRMAN'S COMPANY, ADDRESS. and PHONE NUMBER when they designed DI3000. They wanted to make it device independent,
portab Ie, and make it adhere to existing and future standards for graphics
Abstract: software.

Part I: What is DI 3000 and Pretty Pictures? Different graphics devices have different special capabilities. Plotters
DI3000 is a system of device-independent FORTRAN-callable graphics tools. produce permanent copies of your graphics output. One kind of screen may be
Its capabilities range from presentation graphics to Mandelbrot sets. able to draw circles, another may be able to fill a polygon with one of a menu
of patterns, and yet another may allow you to use 4096 different colors at
Part II. A DI3000 under ~ User Experience or How I Learned VS/FORTRAN, once. Rather than write a separate graphics system for each device, Precision
Assembler, and PER Visuals chose to write one device independent sysstem that attempts to
simulate the features of all devices on every device Whenever possible. If a
A naive applications programmer learns what it's like to be among the device can't erase lines in hardware, for example, the device independent
first on your block to install a software package written for VAXes under system will attempt to simulate that function in software. If it can't
C~.
simulate the function (for example, trying to let you use 4096 simultaneous
colors on a plotter) the system will ignore it. The advantage of a device
Part III. The June 1 "Slam Dunk" Tape independent system is that graphics ouput produced by a given application on
one device will be very similar, if not identical, to graphics output produced
The somewhat less naive programmer describes how easy it is to install by the same application on another device, eliminating the need to spend hours
the new Precision Visuals, Inc. (PVI) "CMS Slam Dunk Tape", provided you modifying an application each time you must switch devices.
know what stuff on it is Cornell-dependent.
Since DI3000 is a library of subroutines, a programmer can build up his or
~ her own combinations of graphics primitives in endless different ways,
~
unrestricted by patterns pre-programmed into the system. A turnkey system may
W SPEAKER: Wendy Alberg (CUN) produce a pie chart with a single keystroke, for example, but may be limited
Cornell University in the ways it can display it. A subroutine library allows you (with more
Ithaca, New York effort) to customize the pie any way you like - adding plums, for example.
Precision Visuals chose to write the DI3000 subroutine library in FORTRAN in
order to take advantage of the fact that since there are }'ORTRAN compilers on
almost any system, DI3000 can potentially be made to run almost anyWhere.

Establishing graphics standards and making DI3000 conform to those
standards has several advantages. When people first started writing graphics
software, they wrote it to take advantage of hardware features of the graphics
device(s) they happened to have. Such software is useless for different
graphics devices and often for the same device on a different system. If a
graphics system can be written to be device independent and to adhere to a
widely accepted standard, the same program can be run on different devices
and/or different systems. A programmer used to writing graphics applications
on one computer can easily write them on another. Software that conforms to
the standard will continue to run, and a graphics device, once the graphics
system has a device driver for it, will never become obsolete. Such a
graphics system would be extremely durable.

Currently, DI3000 supports thirty or more devices and the list grows
steadily. Precision Visuals also claims to support at least nine different
computer systems. At Cornell, we're running DI3000 under CMS, with various
degrees of success, on a Tektronics 4013 (green storage tube), a Tektronix
4027 (8 simultaneous color raster device), an HP7221 (8 pen flatbed plotter),
an AED 512 (Advanced Electronic Design's 256 simultaneous color raster


SHRM-730-1/S1
device), and an ACT-l (Advanced Color Technology) ink-jet printer. coordinates; move changes the current position.

What can you do with your DI3000 application program? Your program creates Non-text primitives have various attributes. Color, linestyle, linewidth,
graphics objects for a sort of generic device that Precision Visuals calls. the and intensity are just what you'd think they are. Pen is a conglomerate of
"virtual device". In theory, this device possesses every feature of any real the first four attributes. Polygons can have an edge style, an interior
graphics device. In practice, defining such a device may be difficult as long (fill) style, and an interior color and intensity. The marker symbol is an
as hardware companies keep developing new and better devices. Your attribute of the current position, rather than the other way round as I'd
application builds graphics objects from DI3000's graphics primitives: such expect. With these primitives and some modeling transformations, you can
things as lines, the current cursor position, or the size of a letter. It build just about any image you'd care to.
combines primitives into segments that are treated as user-defined primitives
(rather like the way an exec in CMS can be considered a user-defined CMS The only other thing you'd probably like to add to your image is text. In
command)