Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/17/84; site opus.UUCP
Path: utzoo!watmath!clyde!bonnie!akgua!sdcsvax!sdcrdcf!hplabs!hao!cires!nbires!opus!rcd
From: rcd@opus.UUCP (Dick Dunn)
Newsgroups: net.graphics,net.unix-wizards
Subject: Re: plot(3,5) vs. non-square plot areas
Message-ID: <963@opus.UUCP>
Date: Wed, 28-Nov-84 04:41:13 EST
Article-I.D.: opus.963
Posted: Wed Nov 28 04:41:13 1984
Date-Received: Fri, 30-Nov-84 07:35:48 EST
References: <4663@utzoo.UUCP>
Organization: NBI,Inc, Boulder CO
Lines: 48
Xref: sdcsvax net.graphics:560 net.unix-wizards:10626

> In the course of some work on our plot(5) filter for the HP 7470A plotter,
> we ran across an interesting question:  just what does it mean if you ask
> plot(3) for a non-square space?  There are two possible interpretations:
> 
> 	1. The viewport (physical plot area) remains square, and the
> 		coordinate scaling is not the same in X and Y.
> 
> 	2. The viewport is as large as it can be, within the available
> 		physical space, while preserving the aspect ratio of
> 		the space() request.  So the X and Y scales are the same.
> 
> The Bell documentation strongly implies interpretation (1), and that's
> what their plot(5) code seems to do...

I've been faced with this one (and worse, but more of that in a minute).
At the outset, it's just as well to admit that the definition of plot(5)
doesn't really address the scaling question very well and it might be
better just to choose a different interface and be done with it.

The manual is quite clear on the point that "the plotting area is taken to
be square" in "every case"--so if you stay with the plot(5) definitions you
probably ought to follow that.

> ...The
> Bell graphics software we've examined invariably uses square spaces, so it
> would be unaffected.

But you may find other software (i.e., plot(5) but non-Bell) which relies
on using differing X and Y scales to get a non-square mapping.  If you want
compatibility, you need to preserve the definitions; if you don't need the
compatibility, why not use a better interface definition?

Incidentally, there are devices which have non-square (rectangular)
pixels--I wrote a plot driver for a Printronix printer, which has 1/60 "
horizontally by 1/72 " vertically.  Now, in the context of the definition
of plot(5), what is meant by the "unity mapping" of a square region?  If I
map 1-1 to pixels, I have X and Y ranges which differ whether I use the
full rectangular page or a square subregion.

And don't forget the definition of circle and arc.  How should those behave
if the scaling doesn't come out equal in X and Y on the physical surface?
It would seem that an arc would always lie on the circle drawn with
corresponding parameters--yet unless the arc crosses the axis (presumably
X) on which the radius is interpreted, there may be no point on the arc
which lies at a true distance of the radius from the center!
-- 
Dick Dunn	{hao,ucbvax,allegra}!nbires!rcd		(303)444-5710 x3086
   ...Reality?  Gad, that's worse than puberty!