System and method for improved rendering of graphical rotations

Computer graphics processing and selective visual display system – Computer graphics processing – Graph generating

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C345S440000, C382S296000, C382S298000

Reexamination Certificate

active

06184896

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates generally to the computation of rotations in any dimension, and more particularly, to graphics applications which require the multiplication of two or more rotation matrices or approximate rotation matrices.
BACKGROUND OF THE INVENTION
Modern computer graphics extensively uses matrices and matrix methods to represent graphical objects and operations. For example, in the context of 2D graphics, a point P may be represented as a column vector P=[x y]
t
, and multiplied by the rotation matrix
R

(
θ
)
=
[
cos

(
θ
)
-
sin

(
θ
)
sin

(
θ
)
cos

(
θ
)
]
in order to achieve a counterclockwise rotation by angle &thgr;. In other words, the point
P


[
x

y

]
=
R

(
θ
)
·
P
=
[
cos

(
θ
)
-
sin

(
θ
)
sin

(
θ
)
cos

(
θ
)
]
·
[
x
y
]
is the rotated image of point P. It is noted that the superscript t associated with a matrix or vector argument indicates transposition.
Similarly, in the context of 3D graphics, a point P may be represented as a column vector P=[x y ]
t
, and multiplied by a 3×3 rotation matrix R in order to achieve a 3D rotation; i.e. the resultant point P′=R·P is the rotated image of point P. For example, the matrix
R
z

(
θ
)
=
[
cos

(
θ
)
-
sin

(
θ
)
0
sin

(
θ
)
cos

(
θ
)
0
0
0
1
]
achieves a rotation of angle &thgr; about the z axis when multiplied by point P. Rotations about the x and y axes respectively are achieved by the matrices
R
x

(
φ
)
=
[
1
0
0
0
cos

(
φ
)
-
sin

(
φ
)
0
sin

(
φ
)
cos

(
φ
)
]
,
R
y

(
ϕ
)
=
[
cos

(
ϕ
)
0
sin

(
ϕ
)
0
1
0
-
sin

(
ϕ
)
0
cos

(
ϕ
)
]
respectively.
It is a basic geometric fact that any 3D rotation can be achieved by applying in succession a rotation about the x axis, a rotation about the y axis, and a rotation about the z axis. [Similar statements can be made about any ordering of the axial rotations.] Thus, the rotation matrices may be defined as the set of all matrices generated by the products R
x
(ø)·R
y
(&phgr;)·R
z
(&thgr;) where the angles ø, &phgr;, and &thgr; vary freely. However, one may equivalently (and more usefully) characterize the rotation matrices as the set of matrices A which (a) are orthogonal and (b) have determinant equal to one. To say that a matrix A is orthogonal means that (i) all its rows have length one, and (ii) each row is perpendicular to the other rows. In mathematical notation, the orthogonality conditions (i) and (ii) may be summarized by the matrix equation AAt=I, where the matrix I is the identity matrix. Using the later characterization of rotation matrices as orthogonal matrices having determinant one, it is an elementary exercise to show that the product of two rotation matrices is itself a rotation matrix. In fact, a product of arbitrarily many rotation matrices is also a rotation matrix.
In graphical computing systems, it is quite typical to represent a graphical object as a collection of vertices {P
i
}. In order to rotate the graphical object, each vertex P
i
of the collection is multiplied by a rotation matrix R which represents the desired rotation. The resultant vertices P′
i
=RP
i
from the matrix multiplication may be used to render the rotated graphical object on a display screen.
FIG. 1
illustrates two successive rotations of a cube centered about the origin of a coordinate system {x,y,z}. In an initial orientation U
0
, the cube is aligned with edges parallel to the coordinate axes. A first rotation of the cube may be achieved by multiplying the vertices {P
i
} of the cube in the initial orientation U
0
by a first rotation matrix R
1
. For example, vertex P
1
of the cube in orientation U
0
may be represented as a column vector P
1
=[x
1
y
1
z
1
]
t
, where x
1
, y
1
, and z
1
are the coordinates of vertex P
1
with respect to the coordinate system {x,y,z}. The rotated image of vertex P
1
, depicted as vertex P′
1
in orientation U
1
, is determined by the matrix-vector product P′
1
=R
1
·P
1
. Similarly, each vertex P
i
of the cube in orientation U
0
is multiplied by the rotation matrix R
1
to determine a corresponding vertex P′
i
in orientation U
1
. The vertices {P′
i
} may be used to render the cube in orientation U
1
on a display screen.
A second rotation may be achieved by multiplying the vertices {P′
i
} of the cube in orientation U
1
by a second rotation matrix R
2
. Thus, the vertices {P″
i
} of the cube in orientation U
2
, i.e., after the second rotation, are given by P″
i
=R
2
·P′
i
. It is noted that the combined effect of the two rotations may be achieved with a single rotation matrix R equal to the matrix product R
2
R
1
; i.e., multiplying the vertices {P
i
} of the cube in orientation U
0
by the rotation matrix R=R
2
R
1
generates the corresponding vertices {P
i
} in orientation U
2
. Thus, the rotation matrix R may be interpreted as a representation of orientation U
2
. In fact, each orientation U
i
may be represented by the matrix required to generate the vertices of that orientation from the initial orientation U
0
. Thus, initial orientation U
0
is represented by the identity matrix I, and orientation U
1
is represented by the rotation matrix R
1
.
Quite often in computer graphics, it is desirable to apply a series of rotations in succession to a graphical object. As described above, the graphical object is typically represented in an initial orientation as a collection of vertices {P
i
}. Given a series of rotation matrices R
1
,R
2
, . . . , R
n
which represent the desired rotations, there are two fundamental methods for computing the vertices of the graphical object after each successive rotation. Let {P
i
(k)
} denote the vertices of the graphical object after the first k rotations have been applied where k varies from 1 to n. In a first method, the vertices of a current orientation are computed in terms of the vertices of the previous orientation. Namely,
P
i
(k)
=R
k
·P
i
(k−1)
where P
i
(0)
=P
i
. After the vertices {P
i
(k)
} are computed, they are typically used to render the updated orientation of the graphical object on a display screen.
In a second method, the succession of rotations may be generated by iteratively computing a sequence of matrices U
k
according to the relation U
k
=R
k
U
k−1
with U
0
=I. After matrix U
k
is computed, the vertices {P
i
(k)
} of the graphical object in the k
th
orientation may be computed directly from the vertices {P
i
} of the initial orientation using the relation
P
i
(k)
=U
k
·P
i
.
Thus, the matrix U
k
represents the orientation of the graphical object after the first k rotations have been applied. This second method for generating a series of rotations is generally preferred over the first method for reasons which will become fully apparent below.
By repeatedly applying the recursive relation U
k
=R
k
U
k−1
for successively decreasing values of the index k, it follows that
U
k
=R
k
R
k−1
. . . R
2
R
1
.
Since the arbitrary product of rotation matrices is itself a rotation matrix, each of the orientation matrices U
k
is a rotation matrix, provided the matrix multiplications generating U
k
are preformed on an ideal machine with infinite precision.
In actuality, however, one can only approximate the ideal situation. In general, the coefficients of a rotation matrix R cannot be represented exactly with finite precision memory. Thus, any memory representation {circumflex over (R)} of a rotation matrix R must necessarily be approximate:
{circumflex over (R

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and method for improved rendering of graphical rotations does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for improved rendering of graphical rotations, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for improved rendering of graphical rotations will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2590856

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.