Graphics Programs Reference
In-Depth Information
slowly in order to be able to read the current two or three large items. Thus, the choice
of focus length is a compromise between fast selection and ease of reading.
When a menu becomes very large, most of its items are shrunk to the size of a
dot. In such a case, it helps to embed index items in the menu. These items are always
kept at a readable size and are used to locate the start of any desired region in the
menu. This idea is illustrated in the left part of Figure 4.15, where the index items
are the single letters “A” through “Z.” A user looking for an item that starts with “Q”
can quickly slide the cursor to the index “Q,” where the first few relevant items will
immediately be readable.
A fast implementation of fisheye menus is a must and is based on arrays or other
data structures, each of which contains relevant data at a certain size. If the menu items
are text, then fonts at several sizes must be available. If the items are icons, then each
new icon added to the menu must be immediately prepared at several sizes and added
to the appropriate data structures.
For more information on fisheye menus, see [fisheyemenu 05].
4.3 Circle Inversion
This projection is an exception, perhaps the only one, to the material in this chapter.
It projects (or rather transforms) a two-dimensional image to another two-dimensional
image. In spite of this, it is included here because of its simplicity and mathematical
elegance. Circle inversion was the brainchild, around 1830, of Jakob Steiner. It has
been researched and studied extensively since its first publication, and much is known
about it (as is shown by a simple Internet search).
He [Steiner] is a middle-aged man, of pretty stout proportions, has a long intellectual
face, with beard and moustache and a fine prominent forehead, hair dark rather
incliningtoturngrey. Thefirstthingthatstrikesyouonhisfaceisadashofcare
and anxiety, almost pain, as if arising from physical suffering—he has rheumatism.
He never prepares his lectures beforehand. He thus often stumbles or fails to prove
what he wishes at the moment, and at every such failure he is sure to make some
characteristic remark.
—Thomas Hirst, Diary (1852)
Figure 4.16 illustrates the principle. The figure shows the unit circle centered on the
origin and an arbitrary point P with polar coordinates ( r, θ ). Circle inversion projects
P to P =(1 /r, θ ). Both P and P havethesameangle θ , which places them on
the same straight line that passes through the origin. If r> 1, then P is outside the
unit circle and P is inside it (because 1 /r < 1). Thus, this projection inverts points
with respect to the unit circle centered on the origin. It is easy to see that points on
the circumference of the circle are projected to themselves and that circle inversion is
undefined for the origin, where r = 0. (Although we can say that the origin is projected
to the point at infinity , but this claim is not very useful and may cause confusion with
parallel lines, which are also sometimes said to meet at infinity.) Since P is moved to P
Search WWH ::




Custom Search