Homogeneus Coordinates
Homogeneus Coordinates
Homogeneus Coordinates
Introduction
Homogeneous coordinates have a natural application to Computer Graphics; they form a basis for
the projective geometry used extensively to project a three-dimensional scene onto a two-
dimensional image plane. They also unify the treatment of common graphical transformations and
operations. The graphical use of homogeneous coordinates is due to [Roberts, 1965], and an early
review is presented by [Ahuja, 1968]. Today, homogeneous coordinates are presented in numerous
computer graphics texts (such as [Foley, Newman, Rogers, Qiulin and Davies]); [Newman], in
significance to Computer Graphics. [Bez] further discusses their algebraic and topological
properties, and [Blinn77, Blinn78] develop additional applications for Computer Graphics.
Homogeneous coordinates are also used in the related areas of CAD/CAM [Zeid], robotics
[McKerrow], surface modeling [Farin], and computational projective geometry [Kanatani]. They
can also extend the number range for fixed point arithmetic [Rogers].
Our aim here is to provide an intuitive yet theoretically based discussion that assembles the key
applications include affine transformations, perspective projection, line intersections, clipping, and
rational curves and surfaces. For the sake of clarity in accompanying illustrations, we confine our
1
2
development to two dimensions and then use the intuition gained to present the application of
homogeneous coordinates to three dimensions. None of the material presented here is new; rather,
[Kline] provides a brief history of homogeneous coordinates, crediting Mbius with their
introduction [Mbius]. Given a fixed triangle in the plane, Mbius defined a set of homogeneous
coordinates for a point p to be the weights required at the triangle vertices such that p became the
center of gravity of the triangle (Figure 1, left). The point p is computed as (waa, wbb, wcc), with
the condition that wa+wb+wc = 1. The three unknowns wa, wb, and wc, are called the barycentric
coordinates of p with respect to a, b, and c. [Snyder] provides an algorithm for computing wi;
[Farin] relates w to area by wa = Aa/(Aa+Ab+Ac) and similarly for wb and wc (Figure 1, middle).
Plcker defined another set of homogeneous coordinates by considering the signed distances from
a point to the edges of a fixed triangle (Figure 1, right); here, p = (la, lb, lc).
b b b
wb Ac lc
a a Aa a la
balance Ab lb
wa point p
c c c
wc
Barycentric and Plcker coordinates are examples of coordinate systems in which n+1 values
represent an n-dimensional point. One immediate attribute of these systems is the invariance of a
point when scaled: scaling the Mbius weights or the size of the Plcker triangle does not change
the position of p. As an aside, we note that higher dimensional Plcker coordinates have been
Plcker realized that the homogeneous coordinates [x, y, w] provided a scale invariant
representation for points (x, y) in the Euclidean plane, with x ~ x/w, y ~ y/w, and w 0. He
regarded homogeneous points with w = 0 as corresponding to points in the ordinary plane because
they are infinitely far away. The need for such points at infinity arose from the 16th and 17th
century work of Kepler and Desargues; both realized that a parabola has two foci, one finite and
The ordinary plane augmented with points at infinity is known as the projective plane.
[Aleksandrov] describes the projective plane by considering all lines and planes passing through a
given point s; if they are intersected by a plane P that does not pass through s, then each point (or
line) on P may be associated with a line (or plane) through s, as shown in Figure 2, left. This does
not quite imply a one-to-one mapping of lines (or planes) through s with points (or lines) on P,
because those lines or planes through s parallel to P do not intersect P. By convention, however,
the parallel lines are said to intersect P at ideal (infinitely distant) points; the parallel plane is said
to intersect P at the ideal line. Thus, the projective plane, which we will call 2, is considered to
contain both ideal points and the ideal line. The projective plane cannot be represented within the
w
V
piercing w=1
w=1
P piercing S2
lines on 2
x
s center of projection 3
S2
Projective geometry is, in a sense, the geometry of imaging. This was already understood, for
example, by Albrecht Drer who used a mechanical device to draw objects in perspective [Penna].
4
It is, therefore, a natural tool for Computer Graphics, as discussed in [Herman, Penna]. General
projective geometry is discussed in several texts [Ayres, Coxeter, Ryan] and [Veblen] provides an
Mathematically, the mapping from planes and lines through s to lines and points on the projective
plane is the transformation of the usual Euclidean space into projective space. The following
3) The set of all pairs of antipodal points of S2, the unit sphere in 3.
We denote the usual two-dimensional Euclidean space (also known as physical, ordinary, or
proper space) by 2. Within 2, each point is represented as a two-component vector, (x, y),
where both x and y are finite values in an orthogonal coordinate system. The relationships
between 3, the unit sphere, S2, and the projective plane, 2, are illustrated in Figure 2, right.
Points in 2 are lines through the origin, as in the second definition above. This means that
mapping is achieved by the equivalences x ~ x/w and y ~ y/w (we enclose Euclidean
coordinates within parentheses and homogeneous coordinates within brackets; their equivalence is
signified by ~).
2 is not a vector space in the same manner as 2. Indeed, scalar multiplication simply forms a
5
new representative of the equivalence class. Furthermore, if the representatives are chosen from
the intersection with the plane w = 1, then the vector addition of two points in 2 computes a
representative of the midpoint between the two vectors (for example, given two ordinary vectors,
(1, 2) and (3, 4), addition of their homogeneous equivalents is [1, 2, 1]+[3, 4, 1] = [4, 6, 2] ~ (2, 3)).
The division by w means that the conversion of a homogeneous point to its Euclidean equivalent is
inherently a projection of the homogenous point onto the w = 1 plane. Figure 2, right, illustrates
Because homogeneous points represent projection, they can also represent points at infinity.
Consider a homogeneous point as w approaches 0; for example, in Figure 3, [2, 3, w] is shown for w
= {4, 2, 1, 1/2, 0}. As w approaches 0, the projected Euclidean points move away from the origin
in the (2, 3) direction. At w = 0, the point is infinitely far and may be treated as a positionless
vector.
(2, 3, 4)
w
w = 1 plane line from (0, 0, 1)
(2, 3, 2) towards (2, 3, 1)
(2, 3, 1)
8
y (2, 3, .5)
(2, 3, 0)
homogeneous point
(0, 0, 0) x
projection to w = 1 plane
We close this section with a brief reflection on the term homogeneous, which [Oxford] defines as:
The homogeneous form for the conic is found by replacing x with x/w and y with y/w;
multiplying by w2 yields:
Here, all terms have total variable degree two, as in definition 2), above. In passing, we note that
any polynomial function in 2 has a form equivalent to f and may be transformed, via a change to
homogeneous coordinates, to a polynomial function with constant total degree for each term. This
An important, practical aspect of the homogeneous coordinate system is its unification of the
translation, scaling and rotation of geometric objects. In 2 Euclidean space, the most general
affine mapping is
where p and p are points in 2, A is a 2 by 2 matrix representing scaling and rotation, and the
point c represents translation. In this formulation, translation is treated differently from rotation
or scaling.
[ ]
a00 a01
A more consistent, and ultimately simpler result is obtained by introducing a third column to the
[ ]
a00 a01 0
px py are unchanged, but the result is now three-dimensional and the matrix is square. Thus:
the resulting (homogeneous) vector has the same dimension as the argument
(homogeneous) vector,
The above transformation may be represented compactly by bordering the matrix A with the
[p 1] = [p 1]
[ ] A
c
0
1
.
Here [px py 1] and [px py 1] are replaced with their compact forms [p 1] and [p 1] so that the
components conform in size with the sub-matrices. In this formulation, all affine transformations
are matrix multiplications. Computer graphic transformations are usually encoded as matrices
because of their representational simplicity and computational efficiency. We now summarize the
8
Affine Transformations
[ ]
1 0 0
[px py 1] = [px py 1] 0
cx cy
1 0 , compactly expressed as [p 1] = [p 1]
1
[ ] I
c
0
1
.
where R =
[ cos()
sin()
-sin()
cos()
] for a rotation of radians counter-clockwise about the origin.
[ ]
cos() -sin() 0
0
cos()
0
0 , compactly: [p 1] = [p 1]
1
[ ]
R
0
0
1
.
9
0
0
sy
.
[ ]
sx 0 0
[px py 1] = [px py 1] 0
0
sy
0
0 , compactly: [p 1] = [p 1]
1
[ ]
S
0
0
1
.
Sequences
[p 1] = [p 1]
[ ][ ][ ] [
I
c
0
1
R
0
0
1
S
0
0
1
= [p 1]
RS
cRS
0
1
]
.
Homogeneous Lines
a1x+b1y+c1 = 0
a2x+b2y+c2 = 0,
obtaining: x =
| || | | || |
-c1
-c2
b1
b2
/
a1
a2
b1
b2
; y =
a1
a2
-c1
-c2
/
a1
a2
b1
b2
.
The two lines l1 and l2 intersect in 2 provided they are not parallel. This special provision may be
[x, y, w] =
(| | | | | | )
-c1
-c2
b1
b2
,
a1
a2
-c1
-c2
,
a1
a2
b1
b2
.
Dividing by w yields a finite point in 2 if w 0, and a point at infinity if w = 0 (i.e, the lines are
parallel). [x, y, w] is simply the cross product, [a1, b1, c1] [a2, b2, c2].
If the intersection of two lines is the cross product of their coefficients, the intersection of two
parallel lines may be given as [a, b, c] [a, b, d] = [b, -a, 0], or [1, -a/b, 0], which is the point at
infinity in the direction of the lines slope. Note that the line at infinity may be represented as [0, 0,
a]; the dot product with this line and any point at infinity is zero; thus, all points at infinity lie on
We also note the duality between line and point in that the cross product of two homogeneous
11
points yields the coordinates of their connecting line. This duality between point and line in two
dimensions has, in three dimensions, a corresponding duality between point and plane. See
Conics
In our introduction we briefly touched upon the general second degree implicit curve in 2,
showing that it could be converted to homogeneous form in 2 (represented by points in 3). This
curve is either null, a conic section, a single point, intersecting lines, or coincident lines [Blinn84,
Brieskorn].
It can also be shown that conic sections are equivalent under perspective transformation. As an
example, consider the transformation of a circle to an ellipse, both conic sections. Let such a cone
be defined and let a plane A intersect the cone to form an ellipse. Now intersect the cone with a
plane B normal to the cone axis at a distance from the cone vertex such that the circle of
intersection has the desired radius. The ellipse in plane A is simply the projection of the circle in
plane B, with the axis of the cone being the direction of projection.
A B
We can define second degree curves as the set of all points [x, y, w] that satisfy the general
[] [ ]
x a c/2 d/2
The matrix Q is known as the matrix of the second degree curve. In particular, if the eigenvalues
of Q have the signs (+, +, -) or (-, -, +), then Q represents a conic section (the eigenvalues are
Now, letting T be a scaling transformation, TQTT is the quadratic form for the transformed curve.
[ ]
1 0 0
Q= 0 1 0
0 0 -1
so that [x, y, w] Q [x, y, w]T = x2+y2-w2 = 0. The matrix for the scaled unit circle is
[ ][ ][ ] [ ]
sx 0 0 1 0 0 sx 0 0 sx2 0 0
0 sy 0 0 1 0 0 sy 0 = 0 sy2 0
0 0 1 0 0 -1 0 0 1 0 0 -1
and the homogeneous second degree curve is x2sx2+y2sy2-w2 = 0, which can be reformulated as
13
x2 y2 w2
+ - = 0,
sy2 sx2 s2x2y2
Rational Curves
In many applications the implicit formulation for a curve is declined in favor of a parametric
formulation that expresses the curve in terms of easily manipulated control points. Specifically, the
n
C(t) =
i=1
Bi(t)Pi,
where Pi is a set of n control points, Bi is a corresponding set of basis functions, each of degree n-1,
Unfortunately, parametric curves are a limited subset of implicitly defined curves. For example,
second degree polynomial basis functions yield parabolas; no choice of Bi will yield a portion of a
circle, ellipse, or hyperbola [Patterson]. As we have seen, however, all conic sections are equivalent
under projection, and this motivates the use of projection to produce an extended family of
parametric curves. These curves are known as rational curves and may be defined by
n n
C(t) =
wiBi(t)Pi / wiBi(t),
i=1 i=1
14
where wi are weights applied to the control vertices. Increasing the value of a weight draws the
curve closer to the corresponding control point. Usually wi > 0 (otherwise the resulting curve may
be undefined or contain asymptotes [Patterson]) and usually the basis functions form a partition of
unity, meaning Bi(t) = 1, which implies that the shape of the curve is unaffected by translation
of the control points [Barsky].
The second degree rational parametric curve may be represented in matrix form as
[ ][ ][ ] [ ][ ]
B0(t) T w0 0 0 Px0 Py0 1 B0(t) T w0Px0 w0Py0 w0
That is, evaluation of the curve is facilitated by representing the control points in their
homogeneous form. For wi = 1, the above represents a second degree non-rational parametric
curve.
maintain the simplicity of the results, although its original purpose was to allow perspective
transformations [Roberts].
15
In other words, the use of the additional, homogeneous coordinate not only produces polynomials
of fixed degree, it also provides a method for consistent manipulation of the Euclidean space.
It is well known that a 3 by 3 matrix can represent three-dimensional scaling and rotation, but not
translation. As in the two-dimensional case, translation becomes possible with the addition of a
[ ]
1 0 0 0
0 1 0 0
[x y z w] = [x y z 1]
0 0 1 0
tx ty tz 1
[p 1] = [p 1]
[ ]
I
t
0
1
, where I is the identity matrix and t the translation,
Perspective Projection
objects onto a two-dimensional image plane. This projection is usually a perspective projection
with the center of projection being the point of view (eyepoint) and the central projector
In creating shaded images, a perspective projection is not strictly necessary; ray tracing, for
example, computes pixel values directly without a perspective transformation of the object. For
line drawings and polygon rendering, however, the perspective transformation is essential.
16
As shown in Figure 5, we identify the screen of an output device with a rectangular domain in 2;
the rendering of objects in 3 is naturally performed via their projection to 2.
Eye
Object
Screen
Referring to the side view in Figure 6, the image point (x, y) is computed from the object point
(x, y, D)
(x, y, z) Sy
y
Z
(0, 0, 0) D
image window
The division by z is known as the perspective divide. This non-linear relationship in three
dimensions can be formulated as a linear relationship in four dimensions through the use of
Until now we have used the homogeneous coordinate to accommodate the larger matrix required
to perform affine transformations; after the transformation, the fourth coordinate, w, has remained
1. If, however, the resulting homogeneous coordinate w is proportional to the distance from the
eye to a point, a perspective projection of that point onto the image plane is effected.
For example, let us assume the eye is located at the origin and directed towards the positive z-axis,
with the x-axis to the right and the y-axis up (a left-handed coordinate system); alternatively, as
discussed in [Blinn93], the image plane may be placed at the origin. We can project points onto the
[ ]
1 0 0 0
0 1 0 0
(x, y, z) = (xD/z, yD/z, D) ~ [x y z z/D] = [x y z 1] .
0 0 1 1/D
0 0 0 0
As D approaches infinity, w = 1/D approaches 0 and the transformed points become infinitely
far; their position parallel to the xy plane is unaffected by z and, effectively, an orthographic
transformation results.
The perspective projection above yields a constant z = D, which is a loss of depth information
due to the linear dependence of the third and fourth columns of the matrix. Introducing a second
non-zero term, e.g. -1, into the third column does not affect x and y, but z becomes D-D/z.
The purpose of this additional term is to compress the Euclidean space z [1, ] to z [0, D].
[ ]
1 0 0 0
0 1 0 0
(x, y, z) = (xD/z, yD/z, D-D/z) ~ [x y z-1 z/D] = [x y z 1] .
0 0 1 1/D
0 0 -1 0
This, then, is the perspective transformation; multiplied by a pure projection it yields the
perspective-projection transformation:
18
[ ][ ] [ ]
1 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0 0 1 0 0
= .
0 0 1 1/D 0 0 0 0 0 0 1 1/D
0 0 -1 0 0 0 D 1 0 0 0 0
perspective projection perspective-projection
Perspective Space
homogeneous points) to new homogeneous points, which may then be converted to Euclidean
space. These transformed points exist in perspective space. We now examine the properties of the
perspective transformation in terms of the relation between perspective space and the
In an affine transformation matrix, the last column is [0 0 0 1]T; multiplication with a direction
vector [a, b, c, 0] yields another direction vector [a, b, c, 0]. In a perspective transform,
however, the last column is [0 0 -1/D 1]T; multiplication with a direction vector yields [a, b, c,
-c/D]. This is a homogeneous point, not direction, and is known as the vanishing point for the
given direction. A set of three-dimensional parallel lines will intersect at the same vanishing point,
with the one exception that parallel lines in the xy plane remain parallel.
In many graphics systems, points in object space are transformed by a matrix that is the
concatenation of all rotation, scaling, translation, and perspective transformations. Usually the
projection transformation is not incorporated into this concatenation, for several reasons. First, the
the value of z before projection is often useful for incremental scanline depth sorting or for
intensity variation in line drawings. More importantly, however, z can simplify three-
dimensional clipping of Euclidean lines and line segments against the viewing frustum by clipping
homogeneously against a parallelepiped. After clipping, points are simply projected to the z = D
The viewing frustum consists of six planes defined in terms of the eye position, the visible portion
of the image plane, and the allowable depths of three-dimensional objects. The viewing frustum
shown in Figure 7 has a visible image sized 2*Sx by 2*Sy, and the near and far clipping planes
image
plane top
r
fa (z = F)
Sy right (Sx , Sy , 0) ar (Sx , Sy , 1)
fa
r
Z ne
Sy
8
near
(z = D)
Euclidean space perspective space
To effect the image size above, we simply scale the first and second columns of the perspective
matrix by Sx and Sy respectively. Assuming a square window, Sx and Sy may be derived from the
To simplify clipping, wed like the near clipping plane to transform to z = 0, and the far clipping
plane to transform to z = 1. By considering the transformations of the points (0, 0, D) and (0, 0,
we see that the near and far clipping planes can be transformed by scaling the z-terms, resulting in:
[ ]
1/Sx 0 0 0
0 1/Sy 0 0
[P] = 1 .
0 0 1/D
D(1-D/F)
-1
Now, as desired: 0 0 0
1-D/F
20
[
[0 0 D 1][P] = 0, 0,
D
D(1-D/F)
-
1
1-D/F ]
, 1 = [0, 0, 0, 1]
[
[0 0 F 1][P] = 0, 0,
F
-
1
,
D(1-D/F) 1-D/F D
F
][
= 0, 0,
F-D
F(1-D/F) ]
, 1 = [0, 0, 1, 1].
To familiarize ourselves with the perspective matrix, we list the following homogeneous points and
their transformations:
transforms to xy plane (z = 0)
[a b D 1][P] = [a/Sx, b/Sy, 0, 1] but for scale, point on image plane unchanged
aD 1
[a 0 b 0][P] = [ , 0, , 1] point at infinity in xz plane lies
bSx 1-D/F
on perspective horizon
-1
[0 0 0 1][P] = [0, 0, , 0] eye transforms to point at infinity on
1-D/F
21
The efficient shading of a polygon whose vertices have been transformed to the display screen is
techniques may be applied to vertex parameters such as color and texture. Any parameter
interpolated across a polygon must follow the same transformation as the polygon vertices; if the
transformation includes perspective, a homogeneous division is required at each pixel within the
screen space polygon (in practice, linear interpolation in screen space is usually not objectionable
for parameters such as color, but is often apparent when applied to texture coordinates).
Specifically, for perspective transformations, an interpolated parameter will have the form
(asx+bsy+c)/(dsx+esy+f),
where sx and sy are screen space coordinates. [Heckbert] refers to this as rational linear
this as hyperbolic interpolation. In the case where the polygon is parallel to the projection plane,
Homogeneous Clipping
Three-dimensional line segments and polygon edges must be clipped to the viewing frustum. This
should be performed in perspective space, after vertex colors have been computed; otherwise,
clipping, by modifying a vertexs location, would modify its color. By clipping in perspective space
the integrity of the polygon is maintained longer. Also, in homogeneous screen space the
equations for the clipping planes are of the form x = w, whereas they are more complex in object
22
In this section we use * to represent homogeneous coordinates before the conversion to Euclidean
space. That is, [x*, y*, z*, w*] = [x y z 1][P] and (x, y, z) = (x*/w*, y*/w*, z*/w*).
z 1. Note that negative z values result in negative w values, with z = z*/w* > 0. Thus,
points behind the eye must be clipped before the homogeneous division. In summary, we test that:
0 z* -- near -- 0 z*
z* w* -- far -- z* w*
Let us represent the line segment to be clipped as, p* = p1*+(p2*-p1*), [0, 1], where p1*
and p2* are the perspective-space endpoints [x1*, y1*, z1*, w1*] and [x2*, y2*, z2*, w2*]. The
intersection of the line segment with a clipping plane is then given in terms of :
x1*+w1* x1*-w1*
left = right =
-(w2*-w1*)-(x2*-x1*) (w2*-w1*)-(x2*-x1*)
y1*+w1* y1*-w1*
bottom = top =
-(w2*-w1*)-(y2*-y1*) (w2*-w1*)-(y2*-y1*)
z1* z1*-w1*
near = far =
-(z2*-z1*) (w2*-w1*)-(z2*-z1*)
For example, consider the perspective space line segment from p1* = [2, y1, z1, 2] to p2* = [-1,
y2, z2, 1/2]. For the first point, p1x* > -p1w* (2 > -2); but, for the second point, p2x* < -p2w* (-1 <
The projected x-coordinate of p* = x*/w* = (-2/3)(3/2) = -1, which is the left boundary of
Conclusion
In this paper we have offered a unified view of homogeneous coordinates within a Computer
Graphics context. First, a brief historical review revealed that, as the understanding of perspective
and projections increased, new coordinate systems were developed to represent the underlying
spaces; one of these systems was the homogeneous coordinate system, which was later seen to
Next, we formally introduced the homogeneous coordinate system. Its application in two-
dimensional Euclidean space was discussed in some detail; it was shown that affine transformations
transformations, and that the intersection of two-dimensional lines can be performed without
special cases.
Homogeneous coordinates in three dimensions were discussed in greater detail, with particular
attention devoted to perspective transformations. Finally, a method to clip lines with respect to the
Acknowledgements
We gratefully acknowledge Jim Blinn, Charlie Gunn, Paul Heckbert, and Ken Shoemake for
numerous suggestions that improved this paper. We also thank the referees for their thorough
reviews and valuable suggestions, many of which we have incorporated into this paper.
References
Aleksandrov, A.D., Kolmogorov, A.N., Lavientv, M.A. Mathematics, its Content, Methods and
Ahuja, D.V. and Coons, S.A. Geometry for Construction and Display. IBM Systems Journal (3, 4),
Barsky, B. Rational Beta-splines for Representing Curves and Surfaces. IEEE Computer Graphics
Bez, H.E. Homogeneous Coordinates for Computer Graphics. Computer-Aided Design 15 (6),
Blinn, J. A Trip down the Graphics Pipeline: the Homogeneous Perspective Transform. IEEE
Blinn, J. A Trip Down the Graphics Pipeline: Line Clipping. IEEE Computer Graphics and
25
Blinn, J. The Algebraic Properties of Homogeneous Second Order Surfaces. SIGGRAPH Course
Blinn, J. Hyberbolic Interpolation. IEEE Computer Graphics and Applications 12 (4), 1992, pp.
89-94.
Blinn, J., Newell, M.E. Clipping Using Homogeneous Coordinates. Proceedings of SIGGRAPH 78.
Carlbom, I. and Paciorek, J. Geometric Projections and Viewing Transformations. ACM Computing
Coxeter, H.S.M. Projective Geometry (second edition), Springer-Verlag, New York, 1987.
Farin, G. Curves and Surfaces for Computer Aided Geometric Design (second edition), Academic
Foley, J.D., van Dam, A., Feiner, S.K., Hughes, J.F. Computer Graphics, Principles and Practice
Heckbert, P. Fundamentals of Texture Mapping and Image Warping. Masters thesis, Computer
Herman, I. The Use of Projective Geometry in Computer Graphics. Lecture Notes in Computer
Kline, M. Mathematical Thought from Ancient to Modern Times. Oxford University Press, New
York, 1972.
Mbius, F. Gesammelte Werke, vol. 1, pp. 36-49, Die Barycentrische Calcul. Dr. M. Saendig
Newman, W.M. and Sproull, R.F. Principles of Interactive Computer Graphics. McGraw-Hill,
Oxford University Press. The Compact Edition of the Oxford English Dictionary. Oxford
Pellegrini, M. Ray-shooting and Isotopy Classes of Lines in 3-Dimensional Space. Lecture Notes in
Penna, M.A., Patterson, R.R. Projective Geometry and its Application to Computer Graphics.
Plcker, J. Uber ein neues Coordinatensystem. Journal fr die Reine und Angewandte
Qiulin, D. and Davies, B.J. Surface Geometry for Computer-Aided Design and Manufacture. Ellis
Riesenfeld, R.F. Homogeneous Coordinates and Projective Planes in Computer Graphics. IEEE
27
Rogers, D.F., Adams, J.A. Mathematical Elements for Computer Graphics (second edition).
Ryan, P.J. Euclidean and Non-Euclidean Geometry. Cambridge University Press, Cambridge,
1986.
Snyder, J. and Barr, A. Ray Tracing Complex Models Containing Surface Tessellations.
Veblen, O. and Young, J.W. A Mathematical Science. In The World of Mathematics, J. Newman,