Around 21 o'clock on Jun 27, Andy Ball wrote:
> Surely, if pixels are assumed to be adjacent, then in
> providing the physical size of pixels provides us with the
> resolution!
The linear resolution is only interesting if you want to know the linear
dimension of an object on the screen. That ignores the environment the
display is located in. Most of the time when we talk about 'point sizes',
we refer to a media which is held at arms length (for those whos arms are
still long enough).
Objects further from the eye need larger type, objects closer need smaller
type; that's because the eye isn't interested in the linear dimension of
an object, but only in the apparent angular size. When talking about
presenting usable text to the user, we really need to know this angular
dimension, and that takes the third parameter -- the distance from the
object to the viewer.
Given the viewer distance, we can compute the angular dimension of each
pixel, and then use that to create text of a suitable size.
Sounds like we need a device to measure the distance from the monitor to
the eye.
Or do we?
Linus proposed a shortcut to this problem last year.
His hypothesis is that people are most comfortable when the computer
display fills the visual field that the fovea can comfortably reach without
head motion.
If true, it would mean that people automatically position their heads so
that the total angular size of the screen is effectively a constant (for
reasonable sized monitors). This means the angular size of each pixel can
be trivially computed by dividing the angular size of the monitor (a
constant) by the number of pixels across (or down) the screen.
It's easy to collect evidence to support this hypothesis; note your own
posture when using desktop machines with a variety of monitor sizes. I
recently replaced a 21" monitor with a 18" LCD -- the 21" monitor could
not be positioned "comfortably" on my desk and I found myself leaning back
in my chair. Now with the 18" LCD monitor, I find myself sitting up in
the chair, which has certainly made long sessions reading email less
painful.
Of course, it would be nice to design an experiment to test this theory.
Given the angular size of each pixel, it's now easy to compute a
scale factor for the screen. Linus proposed that any 1024x768
monitor be considered "75dpi"; take that scale factor and do some
extrapolation:
800 x 600 59 dpi
1024 x 768 75 dpi
1280 x 1024 94 dpi
1600 x 1200 117 dpi
2048 x 1536 150 dpi
Note that in 1990, most X users selected 75dpi as their "default" font
size, but in 2000, most X users selected 100dpi -- in the same period,
the "usual" monitor resolution increased from 1024x768 to 1280x1024 (or
higher).
There are some corollaries:
1) Larger monitors don't give you more "real estate",
they just take up more desk space. This is, to
a great extent, quite true -- I've had two 80 column
terminals side-by-side on my display for 16 years.
2) Higher resolutions don't give you more real-estate,
they just make you use fonts in larger pixel sizes.
Of course, one of the underlying assumptions here is that there are
sufficient pixels on the screen to display text accurately in reasonable
sizes. Once you've started using AA text for a few months, you'll notice
that the pixels on your screen "disappear"; if they don't, then your
screen has insufficient pixels to fill your comfortable visual field
accurately enough to fit this rule.
The display technology can affect this value; monitors automatically blur
pixels and so they can disappear with lower resolution. LCD monitors make
pixel boundaries quite visible, so without sub-pixel rendering, you need
more pixels to get the same visible effect.
Linus suggested that 1024x768 was the lowest resolution which satisfies
this condition for monitors; I suggest that the same value is reasonable
given sub-pixel rendering (which nearly doubles the effective pixel
resolution along the horizontal axis).
I suggest that this rule is only really valid when the application
environment is fixed; certainly when presenting information to a large
audience on a screen, the effective size of the presentation will vary
greatly from the front of the room to the back.
Another example is in wall-sized displays for visualizing a large amount
of information to many people, in that case, each user may not consider
the whole display at once making head (or even body) motion acceptable.
The final example is in how Xinerama is typically used -- to knit multiple
monitors together so that applications can be moved among them. This is
made necessary because most applications don't support migration between X
screens; there are even hacks in the protocol to let applications avoid
placing windows across the boundaries, something unnecessary in an un
modified environment where applications are aware of the pixel dimensions
of each monitor. This may diminish as Gtk+ 2.2 is deployed, that toolkit
supports real migration, even among multiple displays.
However, each of these examples present the requirement that this trivial
approximation may need to be adjusted in some cases.
> You're making assumptions about what people are thinking.
> Whether or not my users know that 1pt = 1/72" and that 10pt
> is ten times that, they *do* know that 10pt is a meaningful
> fixed size!
I'd be surprised if many developers weren't aware of the linear dimension
of a printers point. Even still, I'd like to take that application using
10pt fonts and project them on the wall, and I certainly don't want it
using the same linear dimension as on the screen. I submit that the
number of cases where the developer (or user) is interested in the actual
linear dimension of objects on the screen is very limited, and perhaps
vanishingly so.
> One of my programs prints labels, and depends on the fact
> that at 12pt text, five lines of text fit on the 1" high
> label, with a blank line to skip the gap between labels.
> 12pt means 6 lines per inch, precisely because point size is
> meaningful.
Linear dimensions when producing physical artifacts are a different
problem, certainly you'd have no trouble laying out your labels if every
dimension on the screen were scaled in the same way so that 1 "inch" was
precisely 72.27 "points", even if each point were actually a foot high
when presented on your giant projection display.
Keith Packard XFree86 Core Team HP Cambridge Research Lab
_______________________________________________
Fonts mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/fonts