vectors. By applying orthogonal base vectors the matrix for
the base vector transform is identical with the coordinate
transform matrix. The base vectors to be orthogonalized
are vectors defining two faces with the given three points
Py, P», P3 (see fig. 2) of the (planar) face as well as the
standard vector for the face. For the orthogonalization the
Schmidtsche orthonormalization procedure is used. The nor-
malization part can be omited.
ey=b,
= —
ey-b, x
Figure 2: One of the faces and the resulting base vectors
By stepwise orthogonalization the orthogonal base (bi, b»,
bs) is achieved:
Vi = P P»
V2 = Pi Ps
V3 = V1 XV2
In the last equation the calculation of the last positions does
not apply as the numerator turns zero, this means the or-
thogonal base vectors b1, b; are perpendicular to the origin
vector vs.
bi = VL
b 5 7 tin:
I n
For transformation between base B = {e,,ey,ez} and
B* — (bi , b; , bà) the following equation is applicable
bi ex
bs = A ey
bs ez
As the base vectors of the initial coordinate system cor-
respond to the identity matrix it can be stated that À is
identical with the new base vectors. As to transform the
coordinates r1, T2, z3 into the new coordinate system, the
transposition of the inversion of A has to be found. The
base vectors of the new coordinate system are orthogonal to
each other, therefore the transformation matrix, consisting
of these vectors is also orthogonal. The inverse of an or-
thogonal matrix is its transposition, i.e. the matrix of the
transformation of the base vectors and the coordinates is
identical.
xi xi
x2 ] —AÀAl, xa
X3 Xs
Instead of three rotations obtained by trigonometric calcu-
lations only the basic arithmetics are required.
To put the second face perpendicular to the xz - plane, a
second time the orthormalisation procedure has to be ap-
plied. The normal vector orthogonal to the face will be one
of the new base vectors. Orthogonalisation and coordinate
transforms are performed analogously.
If both faces are already in the xy - plane, 2D operations
can be used to compute the intersection. Otherwise three
projections as explained in the following will be used (see
fig. 3).
Using the projection onto the yz - plane the face F; appears
as a line, face F5 still appears as a face. The resulting inter-
section of line and face are one or more intervalls along the
y-axis. Inside these intervalls an intersection is possible but
not necessary.
The projection onto the xz - plane results in a single x-value,
the value where both lines representing faces intersect. This
point is also only a prerequisite to calculate the intersecting
lines.
In the last projection onto the xy - plane lines are drawn
parallel to the y - axis along the previously determined inter-
valls. The intersection between these line segments and the
second face F» results in the intersecting line between both
faces. This calculation can be performed by 2D operations.
In the case of Smallworld GIS the class sector.rope and
its method all intersections(other.sector.rope) may
be used.
4 IMPLEMENTATION IN
SMALLWORLD GIS
1
Smallworld GIS provides an outstanding programming en-
vironment not only for application development but also for
system development. The extension by 3D functionality is
facilitated by
e the usage of only one language for system and appli-
cation development
e the creation of more specialized subclasses in the
object-oriented framework
e the availability of the source code for all but the kernel
classes
e the interactive development environment (e.g. class
browser)
The library installed with the GIS uses the X11 windows
system, a proprietary relational database and classes for col-
lections (ie. a collection of objects like vectors with fixed
size, stretchable vectors, hash tables, queues and sorted col-
lections).
lSince Version 2.1.2 it is possible to use a z - coordinate in Smallworld GIS. For its implementation some new classes have to be introduced.
Genuine 3D functionality is only realized on the level of the 3D coordinates, i.e. its not possible to model body-shaped objects.
International Archives of Photogrammetry and Remote Sensing. Vol. XXXI, Part B4. Vienna 1996
Sc
or
ca
clé
ler
es:
tic
Th
sir
th:
to
to
tio
for
In
dai
ad
cio
On
are