Go to Bottom of Page   |   Up one Level

LECTURE 12
Chee Yap
Zoom Visualization

Zoom Visualization

This lecture discuss the issues arising from zooming visualization: it is the simplest form of what is often called visual navigation or walkthru visualization. Walkthru visualization are usually for 3D models. But in 2D which is our focus, so many issues are greatly simplified.


[Previous] [This] [Next]            [Top] [Bot]

1   Introduction

There is a basic mathematical background that is critical in graphics and visualization, called transformations. The topic arises because we have on the one hand, a geometric model M and on the other hand, an image I of this model. Certain ``transformations'' must be performed to convert M to I, based on the current transformation parameters. In 2-D, most of this becomes very simple. A further simplification comes from the fact that we (usually) do not want to rotate our views.

Suppose we are given a very large map M to be visualized in a zoom and pan model. In this lecture, we discuss a model for implementing this in three stages.

First we assume that M has its native coordinate system called world coordinate system. For us, this is basically the LON/LAT coordinate. We also need to convert the LON/LAT into absolute (world) unit of length: if D is the diameter of the earth in meters, then each degree LAT is equal to pD/360 meters. We will use D=12,756.

At the end user, we have a view window which has view size wview×hview in pixels. It has its own view coordinate system, so that a point (x,y) in this window satisfies 0 £ x < wview and 0 £ y < hview. This window has a (current) view position pview which is in world coordinates. Essentially, this says that the origina (0,0) in the view coordinate system represents the point pview in model M. Associated with the view window is also the (current) zoom level which is a number denoted lview. This number is in the units of meters per pixel.

So, the first approximation of our problem is to simply provide a transformation between world coordinates and view window. That is essentially what you did in homework 4. However, this will be inadequate and we will need to introduce intermediate structures between the world and view coordinates. This arise in two ways: from buffering as well as from level-of-detail (LOD) hierarchies in our model.


[Previous] [This] [Next]            [Top] [Bot]

2   Transformations

We discuss transformations only in 2-dimensions. If p=(x,y) is a point, we write (x,y,1) as the standard set of homogeneous coordinates for p. In general, any triple of the form (cx, cy, c) where c ¹ 0 is called a set of homogeneous coordinates for p.

What is a transformation T? It is a mapping between two coordinate systems. If (x,y) is a point in one coordinate system, then (x¢,y¢)=T(x,y) is a point in another coordinate system. The simplest example is translation by a vector t=(tx, ty). In this case,
T1(x,y) = (x+tx, y+ty).
(1)
Another basic transformation T2 is rotation by an angle q. This can best written as a matrix M(q):
T2(x,y)
=
M(q)(x,y)t
=
é
ê
ë
cosq
-sinq
sinq
cosq
ù
ú
û
· é
ê
ë
x
y
ù
ú
û
.
Note that we view a point (x,y) as a column vector (x,y)t (transpose of the row vector (x,y)) when we use matrix notations.

What about the composition of translation T1 with rotation T2? In other words, how should we represent the transformation T12(x,y) = T1(T2(x,y))? We must now use the homogeneous notation for (x,y) and write (x,y,1) (or (x,y,1)t as a column vector). Then the
T12(x,y)
=
M(q,t)(x,y,1)t
=
é
ê
ê
ê
ë
cosq
-sinq
tx
sinq
cosq
ty
0
0
1
ù
ú
ú
ú
û
· é
ê
ê
ê
ë
x
y
1
ù
ú
ú
ú
û
.
Thus, multiplication by a special kind of 3×3 matrix is our most general form of transformation. Such matrix has the property that the bottom row is (0,0,1). In general, product AB of two such matrices A, B represents the corresponding composition. Note that AB ¹ BA in general.

Translation and rotation, and their compositions, represents the class of Euclidean transformations: such transformations are characterized by the fact that the preserve lengths and angles, and do not flip the image into an mirror image.

Besides Euclidean transformations, the other transformations that is very important for us is scaling. Such matrices are represented by
S(sx, sy)
=
é
ê
ê
ê
ë
sx
0
0
0
sy
0
0
0
1
ù
ú
ú
ú
û
where sx, sy are arbitrary positive numbers. They represent the scaling in the x- and y-direction. Usually, sx=sy. If sx > 1 (sx < 1), this represents an expansion (contraction) in the x-direction. We may check that sx=sy=1 is the identity.

Exercise: Describe the transformation that forms a mirror image of an image.

Exercise: Prove that scaling and translation do not change lengths.


[Previous] [This] [Next]            [Top] [Bot]

3   Zoom Levels

First we assume that M has its native coordinate system called world coordinate system. For us, this is basically the LON/LAT coordinate. We also need to convert the LON/LAT into absolute (world) unit of length: if D is the diameter of the earth in meters, then each degree LAT is equal to pD/360 meters. We will use D=12,756.

Let l be any zoom level. We will partitition the zoom level into l simplification levels (or, S-level). Let
0=s0 < s1 < s2 < ¼ < sl = ¥
(2)
be fixed for this discussion. Then we say l is in S-level i if
si £ l < si+1.
Write SL(l)=i in this case.


[Previous] [This] [Next]            [Top] [Bot]

4   Buffer Levels

Next, we assume that there is a buffer whose size is wbuff×hbuff in pixels. The buffer has a (current) position denoted Pbuff (or just P), again in world coordinates and has the same interpretation as pview. The buffer has a (current) simplification level denoted Lbuff. Thus 0 £ Lbuff < l.


[Previous] [This] [Next]            [Top] [Bot]

5   Design for Responsiveness

In remote visualization systems, we have two major pieces of runtime software: the Server and the Client. The Server holds the data to be visualized and the Client manages the GUI and talks to the server. The major issue we want to address is ``responsiveness''. This is defined to be a properto of our system to act responsively to the changing environment. We address two main issues.

The issue of bandwidth variation already arises in the setting of I/O limited visualization, such as found in traditional WalkThru visualization work. There, the bandwidths are fully reliable but it is generally insufficient to satisfy the user requests. Here, the physical bandwidth does not change, but the bandwidth demand changes. But the end effect from a system view point is rather similar.

In the present design (unlike [1]), the Server is just the Postgresql server. The Client Program has to have all the smarts to achieve a ``responsive system''.

Another issue is that of redundant data - the client does not want to waste bandwidth asking for data it already have. This can be solved at various levels of granularity. At present, we will use a very crude method, which is just based on the bounding box of the buffers.

[Previous Section] [Next Section] Go to Top of Page

References

[1]
K. Been. Responsive Thinwire Visualization of Large Geographic Datasets. Ph.d. thesis, Department of Computer Science, New York University, Sept. 2002. Download from http://cs.nyu.edu/visual/home/pub/.




File translated from TEX by TTH, version 3.01.
On 28 Apr 2003, 14:11.